将偶数列和奇数列的元素重新排列到一个向量中
Rearrange elements even and odd columns into one vector
我有一个包含两列的向量 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
只重复了第二行的两个元素。
如何重新排列这个矩阵?
A = [24.0192018449307 48.0192018449307;
72.0576055347920 96.0576055347920];
B = A.';
B = B(:)
利用 MATLAB 是基于列的这一事实,因此您可以转置矩阵,然后使用冒号运算符获得单个向量。
顺便说一句,使用像 A8
和 A9
这样的变量名真的很难闻。像动态变量命名不好。给你的变量动态名称,或者像这样不明确的名称,你以后 运行 会遇到很多麻烦。
我有一个包含两列的向量 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
只重复了第二行的两个元素。
如何重新排列这个矩阵?
A = [24.0192018449307 48.0192018449307;
72.0576055347920 96.0576055347920];
B = A.';
B = B(:)
利用 MATLAB 是基于列的这一事实,因此您可以转置矩阵,然后使用冒号运算符获得单个向量。
顺便说一句,使用像 A8
和 A9
这样的变量名真的很难闻。像动态变量命名不好。给你的变量动态名称,或者像这样不明确的名称,你以后 运行 会遇到很多麻烦。