如何解决将带有逗号和空格的单元格字符串转换为向量
我尝试转换单元格x:
x(1,:) = {'35,35,35'};
x(2,:) = {'40,40,30,40'};
x(3,:) = {'10,'};
到一个矩阵:
R = cell2mat(cellfun(@str2num,x,'un',0));
但结果省略了第一行:
R =
40 40 30 40
但我期待:
R =
35 35 0 35
40 40 30 40
10 0 0 0
这是怎么做到的? 谢谢!
解决方法
Split x
by ,
,使用 str2double
和 fill the missing values 和 0
转换为双精度,如下所示:
R = fillmissing(str2double(split(x,',')),'constant',0);
>> R
R =
35 35 0 35
40 40 30 40
10 0 0 0
注意:避免使用 str2num
,因为它是使用 eval
实现的。有关详细信息,请阅读 documentation 中的安全注意事项和使用它的意外副作用。
您必须手动完成。请尝试使用此脚本来实现您要搜索的内容
clear
clc
x(1,:) = {'35,35,35'};
x(2,:) = {'40,40,30,40'};
for i = 1: length(x)
v1 = split(x(i),",");
for j = 1:length(v1)
if length(str2num(v1{j}) )==0
oo(j)=0;
else
oo(j)= str2num(v1{j});
end
end
R(i,:) = oo(1,:);
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。