MATLAB:无法将单元格数组向量转换为数字数组向量



代码如下:

>> fid = fopen('dump.dat');
>> line_ex = fgetl(fid)
line_ex =
'106,94,241,11,190,237,209,224'
>> newStr = split(line_ex,',')
newStr =
8×1 cell array
'106'
'94'
'241'
'11'
'190'
'237'
'209'
'224'
>> cell2mat(newStr)
Error using cat
Dimensions of matrices being concatenated are not consistent.
Error in cell2mat (line 83)
m{n} = cat(1,c{:,n});

这个错误令人难以置信。我没有试图通过运行cat函数来连接任何东西。

'106'实际上是由MATLAB看到的三个独立的ASCII字符。我只需要把单元格数组转换成一个简单的数字向量。

cell2mat只能将cell数组转换为char类型,因此如果cell中的元素长度不同,则会出现错误。暂时没有好的方法来处理您的问题,但是您可以使用forloop。

for i = 1:length(newStr)
num(i,1) = str2num(cell2mat(newStr(i)));
end

为我的蹩脚英语道歉。

最新更新