Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2022-09-09, 15:56   #1
guohf00001
初级会员
 
注册日期: 2022-09-09
帖子: 1
声望力: 0
guohf00001 正向着好的方向发展
默认 怎样把cell中含{‘0089’}转为数值89

如 a={ '0089' 24.5908 52.9053 15 14; '0089' 24.6311 52.9053 16 14;
'0087' 25.2152 51.1536 15 15;
'0087' 25.2152 51.1536 16 15;
'0087' 25.2152 51.1536 16 15;
'0081' 26.2626 53.9307 16 15 }
想据第一列重复元素分成不同的矩阵,如b=[89 24.5908 52.9053 15 14; 89 24.6311 52.9053 16 14],
c=[87 25.2152 51.1536 15 15; 87 25.2152 51.1536 16 15; 87 25.2152 51.1536 16 15]等。a(:,2:end) 用cell2mat可转为double,但a(:,1) 不能转,用了下面程序:
num=length(a(:,1));
for ii=1:num
B(ii)=str2double(a{ii,1}); % change deviceID (char)to double
end

得到 B=[89 89 87 87 81],但用 ta=tabulate(B)时得到从1到89个数。是不是把a的第一列看成二进制了?要怎样去掉0089前面的两个0,把a分组成b和c形式的矩阵。谢谢
guohf00001 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 13:47


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.