在MATLAB中创建带字符串和浮点的maxtric
我想要一个矩阵,第一行是标题(我使用的每种不同近似方式的磁场)和我使用的每一个数据表的结果 我试图得到这样的结果(示例): 现在,我在这样编程在MATLAB中创建带字符串和浮点的maxtric,matlab,matrix,Matlab,Matrix,我想要一个矩阵,第一行是标题(我使用的每种不同近似方式的磁场)和我使用的每一个数据表的结果 我试图得到这样的结果(示例): 现在,我在这样编程 B1(1,1)= 'Field 1'; B2(1,1)= 'Field 2'; B3(1,1)= 'Field 3'; for i=1:n B1(i+1,1)=polyn(1)*Zsplit1(i)/10^9+polyn(2)*10^-3; B2(i+1,1)=polyn(1)*Zsplit2(i)/10^9+poly
B1(1,1)= 'Field 1';
B2(1,1)= 'Field 2';
B3(1,1)= 'Field 3';
for i=1:n
B1(i+1,1)=polyn(1)*Zsplit1(i)/10^9+polyn(2)*10^-3;
B2(i+1,1)=polyn(1)*Zsplit2(i)/10^9+polyn(2)*10^-3;
B3(i+1,1)=polyn(1)*Zsplit3(i)/10^9+polyn(2)*10^-3;
end
FieldB = [B1 B2 B3]
给出的误差为:
Subscripted assignment dimension mismatch.
Error in 3field (line 32)
B1(1,1)= 'Field 1';
有什么想法吗?在Matlab中不能将字符串存储在数组中。尝试使用单元格数组。只需将
[]
更改为{}
,您就可以在此处完成此操作 在matlab中,标准矩阵不能同时包含数字和字符串。因此,您需要使用另一种数据类型来实现您的目标
在您的情况下,struct()将是最自然的选择:
B(1).name = 'Field 1';
B(2).name = 'Field 2';
B(3).name = 'Field 3';
for i=1:n
B(1).data = polyn(1)*Zsplit1(i)/10^9+polyn(2)*10^-3;
B(2).data = polyn(1)*Zsplit2(i)/10^9+polyn(2)*10^-3;
B(3).data = polyn(1)*Zsplit3(i)/10^9+polyn(2)*10^-3;
end
你也可以使用
B(1).name = 'Field 1';
B(2).name = 'Field 2';
B(3).name = 'Field 3';
for i=1:n
B(1).data = polyn(1)*Zsplit1(i)/10^9+polyn(2)*10^-3;
B(2).data = polyn(1)*Zsplit2(i)/10^9+polyn(2)*10^-3;
B(3).data = polyn(1)*Zsplit3(i)/10^9+polyn(2)*10^-3;
end
B{1,1} = 'Field 1';
B{1,2} = 'Field 2';
B{1,3} = 'Field 3';
...
for i=1:n
B{2,1} = polyn(1)*Zsplit1(i)/10^9+polyn(2)*10^-3;
B{2,2} = polyn(1)*Zsplit2(i)/10^9+polyn(2)*10^-3;
B{2,3} = polyn(1)*Zsplit3(i)/10^9+polyn(2)*10^-3;
end