matlab中一维矩阵数据for循环改变里面数值?

datal=[93206;93209;93215;93218;93221;93224;093227;93233;193236;193239];
i=1;
for i=1:10
datali=datal(i);
b=num2str(datali);
blength=length(b);
if blength==5
datats=b(end-1:end);
datatm=b(2:3);
datath=b(1);
datal(i)=strcat(datath,':',datatm,':',datats);
else blength==6
datats=b(end-1:end);
datatm=b(3:4);
datath=b(1:2);
datal(i)=strcat(datath,':',datatm,':',datats);
end
end

在赋值 A(I)=B 中,B 和 I 中的元素数目必须相同。

出错 Untitled2 (line 16)
datal(i)=strcat(datath,':',datatm,':',datats);

题主的问题实质是想把数值型的时间转换成常规的时间标注形式。

题主在运行下列这句代码

datal(i)=strcat(datath,':',datatm,':',datats);

时,matlab软件出错。

由于变量datal(i)要求数据类型为数值型,而strcat函数要求数据类型为字符型,两者不能对应,所以出现错误。

解决的办法是将strcat函数转换出来的字符,以元胞数组的形式来储存。

实现代码及运行过程如下:

温馨提示:答案为网友推荐,仅供参考