我试过了:
IND =的strcmp(A,'无&#39);
F2 = A(IND == 0); %' x _'条款
data = cellfun(@(x)x(2:end),f2,' UniformOutput',false); %删除数字的x
f3 = sprintf('%s *',数据{:});
N = sscanf(f3,'%f *'); %转换为数字
它会转换' x8'到8岁,但我仍然没有'没有'值。 任何解决方案同时解决所有问题?
感谢
答案 0 :(得分:0)
你可以达到你想要的效果:
要将包含'None'的单元格替换为0,只需执行以下操作:
查找这些单元格的索引(正如您已经完成的那样):
idx = strcmp(A,'None');
然后将0分配给那些索引,括在{curly braces}中,因为你将它们放入一个单元格数组中:
A(idx) = {0};
现在对于其他条目,使用cellfun
和其他索引一样,转换为双打:
A(~idx) = cellfun(@(x) str2double(x(2:end)),A(~idx),'uni',0)
现在A
是以下单元格数组:
A =
[8] [7] [0] [0] [9.1000]
您可以转换为数字数组,因为所有条目都是数字:
A = cell2mat(A)
A =
8.0000 7.0000 0 0 9.1000
当然,您可以将最后两个步骤合并为一个步骤。
耶!