我想提取一个M乘M型(M较大)矩阵的每一列,提出来为
A=[1,2,3;4,5,6;7,8,9];
for i=1:3
x(i)=A(:,i)
end
无法执行赋值,因为左侧和右侧的元素数目不同。
如果将x(i)改成x就对,但是这样输出全是x,我想输出为
我想输出为,x可以有角标,来区分是哪一列
方法有很多,例如:
方法一借助eval:
A=[1,2,3;4,5,6;7,8,9];
for i=1:3
eval(['x',num2str(i),'=A(:,',num2str(i),')'])
end
输出结果:
x1 =
1
4
7
x2 =
2
5
8
x3 =
3
6
9
方法二借助结构体
A=[1,2,3;4,5,6;7,8,9];
for i=1:3
x.(['v',num2str(i)])=A(:,i);
end
disp(x.v1)
方法三借助元胞数组
A=[1,2,3;4,5,6;7,8,9];
for i=1:3
x(i)={A(:,i)};
end
disp(x)
disp(x{1})
[3×1 double] [3×1 double] [3×1 double]
1
4
7
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!