微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将带有逗号和空格的单元格字符串转换为向量

如何解决将带有逗号和空格的单元格字符串转换为向量

我尝试转换单元格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 ,,使用 str2doublefill the missing values0 转换为双精度,如下所示:

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 举报,一经查实,本站将立刻删除。