试试这个:
y=sscanf(str2mat(x).','%9f')
The 9
实际上对应于数字的最大长度str2mat(x).'
>> str2mat(x).'
ans =
999111111111111999999
899000000000000998765
...001111111100......
739............714678
893471345542062223584
775090496669384820280
417115059081028973165
378262353758048746544
5657392 4297
Hence, sscanf
将搜索 9 个浮点数并在找到空格时停止。您可以根据您的数据定义 9 个值。
一个例子:
x={'98.7';'99.397';'99.93578';'100.4';'100.79166';'101.10'};
>> str2mat(x).'
ans =
999111
899000
...001
739...
93471
75 90
7 1
8 6
6
这里最大长度仍然是9。答案仍然是正确的。
y=sscanf(str2mat(x).','%9f')
>> y =
98.7000
99.3970
99.9358
100.4000
100.7917
101.1000
用于确定随机长度%'number'f
, use:
size(str2mat(x).',1)
还有一个技巧:
xMaxLength = num2str(size(str2mat(x).',1));
y = sscanf(str2mat(x).',['%' xMaxLength 'f']);
为了仅计算str2mat
一度:
xx = str2mat(x).';
xxMaxLength = num2str(size(xx,1));
y = sscanf(xx,['%' xxMaxLength 'f']);