【发布时间】:2012-06-14 19:07:52
【问题描述】:
我有一个大小为 400x1 的单元格。它基本上由字符串形式的数字组成。我的意思是当我这样做时
mycell{1}
它给出结果'1'
所以你可以看到数字 1 是字符串的形式。如何将其转换为数值数组?
【问题讨论】:
我有一个大小为 400x1 的单元格。它基本上由字符串形式的数字组成。我的意思是当我这样做时
mycell{1}
它给出结果'1'
所以你可以看到数字 1 是字符串的形式。如何将其转换为数值数组?
【问题讨论】:
你也可以试试cellfun(@str2num,mycell)
如果你有一个双精度元胞数组:
mycell = {'1.56548524'; '1.5265'; '-4.2616' ;'-0.2154' ;'2.15'};
你可以试试
mat = cellfun(@str2num,mycell)
【讨论】:
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
如果你有一些看起来不像双精度的东西,你会在结果的那个单元格中得到一个NaN:
>> c{2,2} = 'aei'
c =
'1' '2'
'3' 'aei'
>> str2double(c)
ans =
1 2
3 NaN
【讨论】:
如果 size(mycell) 是 400x1 ,就像这样。 . . . .
str2num(cell2mat(mycell))
...如果尺寸为 1x400 则像这样
str2num(cell2mat(mycell'))
但是,如果您的任何字符串包含不同数量的字符,这将导致问题,即
mycell{1} = '2'
mycell{2} = '33'
如果你有这样的情况,
str2double(mycell)
...似乎可以处理这个问题,正如其他答案中提到的那样!
【讨论】: