我有一个向量A8
,其中有两列,这里有两行:
24.0192018449307 48.0192018449307
72.0576055347920 96.0576055347920
我想创建一个新的向量A9
,以便我得到一列:
24.0192018449307
48.0192018449307
72.0576055347920
96.0576055347920
我尝试使用以下循环:
for j=1:4
if mod(j,2)~=0
A9(j)=A8(j,1);
else
A9(j)=A8(j,2);
end
end
显然,这不起作用,因为A8
的大小为2x2,而不是1x4。
但我无法弄明白。
我尝试过使用两个循环:
for i=2;
for j=1:4
if mod(j,2)~=0
A9(j)=A8(i,1);
else
A9(j)=A8(i,2);
end
end
end
但是这让我A9
只重复了第二行的两个元素。
如何重新排列此矩阵?
答案 0 :(得分:4)
A = [24.0192018449307 48.0192018449307;
72.0576055347920 96.0576055347920];
B = A.';
B = B(:)
使用MATLAB基于列的事实,因此您可以转置矩阵,然后使用冒号运算符来获取单个向量。
顺便说一句,使用A8
和A9
之类的变量名称真的很糟糕。就像动态变量命名一样糟糕。稍后你会通过给你的变量动态名称或不清楚这样的名字来遇到麻烦。