我有一个大小为400x1的单元格。它基本上由字符串形式的数字组成。我的意思是当我执行
mycell{1}
它返回结果'1'
所以你可以看到数字1是以字符串形式呈现的。我该如何将其转换为数字数组?
我有一个大小为400x1的单元格。它基本上由字符串形式的数字组成。我的意思是当我执行
mycell{1}
它返回结果'1'
所以你可以看到数字1是以字符串形式呈现的。我该如何将其转换为数字数组?
str2double(mycell)
假设您有一个类似于双精度的数组:
>> c = {'1' '2' ; '3' '4'}
c =
'1' '2'
'3' '4'
>> str2double(c)
ans =
1 2
3 4
>> whos ans
Name Size Bytes Class Attributes
ans 2x2 32 double
>> c{2,2} = 'aei'
c =
'1' '2'
'3' 'aei'
>> str2double(c)
ans =
1 2
3 NaN
你也可以尝试使用 cellfun(@str2num,mycell)
如果你有一个双精度型的单元数组:
mycell = {'1.56548524'; '1.5265'; '-4.2616' ;'-0.2154' ;'2.15'};
你可以使用下面的代码:
mat = cellfun(@str2num,mycell)
如果 size(mycell)
是 400x1 . . . . . 那么就像这样
str2num(cell2mat(mycell))
如果尺寸为400x1,则应类似于此
str2num(cell2mat(mycell'))
mycell{1} = '2'
mycell{2} = '33'
str2double(mycell)
如其他回答中所提到的那样,似乎可以很好地处理这个问题!