元胞数组Cell转数值数组Double报错Cat

        从excel读取数据到Matlab中,经常会由于一些原因得到cell格式的数据,当试图用cell2mat将其中数字转成数值格式时,常出现以下报错:

Error using cat 

Dimensions of matrices being concatenated are not consistent.

        其报错原因在于,数字在cell中以字符串格式保存,当出现位数递增时,其字符串长度便发生了改变,因此在cell2mat调用cat函数时,会出现维度不一致的问题。

        了解了原因,解决办法就变得简单。先用char将cell转换为字符数组,即可统一长度,然后再用str2num转成数值数组即可。

load(Data.mat);%加载元胞数组数据
Data = str2num(char(Data));%先用char将元胞数组转成字符数组,再转成数值数组

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将MATLAB中的元胞数组转换数值数组,可以使用cell2mat函数。cell2mat函数将元胞数组中的每个元素转换为相应的数值,并将其存储在一个双精度数组中。这样,你可以将元胞数组中的字符串或其他数据类型转换数值数组。 引用中提到了一个用法示例,可以按照以下方式使用cell2mat函数进行转换: outputmatrix = cell2mat(inputcellarray) 其中,inputcellarray是要转换元胞数组,outputmatrix是转换后得到的双精度数组。通过使用cell2mat函数,你可以将元胞数组转换数值数组,方便进行数值计算和处理。 需要注意的是,如果元胞数组中的元素是含有数字的字符串,转换时使用cell2mat函数会将其转换为char类型的数组,而不是数值类型。如果你想将含有数字的字符串转换数值类型的数组,可以使用str2num函数进行转换。 引用中提到了当元胞数组中的元素为含有数字的字符串时,可以使用cell2mat函数将其转换为char类型的数组。 此外,引用还提到,对于将字符串转换数值类型的数组,应使用str2num函数而不是str2double函数。str2num函数可以将字符串转换为双精度数值,而str2double函数只能将字符串转换为双精度浮点数。 综上所述,要将MATLAB中的元胞数组转换数值数组,可以使用cell2mat函数。如果元胞数组中的元素是含有数字的字符串,则可以使用cell2mat函数将其转换为char类型的数组。如果想将含有数字的字符串转换数值类型的数组,请使用str2num函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值