Arrays 从2个不同的m-by-n矩阵中迭代提取列,并连接到一组n个不同的m-by-2矩阵中
MATLAB: 在MATLAB中 我有2m-by-n矩阵,A和B。我想做一组n m-x-2矩阵,例如在ith矩阵(属于n的集合)中,第一列将是ith A中的列和B中的第二列将是第i列 如何从两个矩阵中提取并连接第i列 如何存储这些n矩阵?使用循环?(记忆?) 示例: 输入: A=[1,2,3;4,5,6;7,8,9](3x3矩阵) B=[11,22,33;44,55,66;77,88,99](3x3矩阵) 输出: 对于i=1:3 C1=[1,11;4,44;7,77] C2=[2,22;5,55;8,88]Arrays 从2个不同的m-by-n矩阵中迭代提取列,并连接到一组n个不同的m-by-2矩阵中,arrays,matlab,loops,memory,matrix,Arrays,Matlab,Loops,Memory,Matrix,MATLAB: 在MATLAB中 我有2m-by-n矩阵,A和B。我想做一组n m-x-2矩阵,例如在ith矩阵(属于n的集合)中,第一列将是ith A中的列和B中的第二列将是第i列 如何从两个矩阵中提取并连接第i列 如何存储这些n矩阵?使用循环?(记忆?) 示例: 输入: A=[1,2,3;4,5,6;7,8,9](3x3矩阵) B=[11,22,33;44,55,66;77,88,99](3x3矩阵) 输出: 对于i=1:3 C1=[1,11;4,44;7,77] C2=[2,22;5,55
C3=[3,33;6,66;9,99]我要做的第一件事就是更改变量名。这主要是为了使引用变量更容易,特别是当m和n发生变化时。而不是写作
C1(:,:)
C2(:,:)
...
Cn(:,:)
我要写信了
C(:,:,1)
C(:,:,2)
...
C(:,:,n)
我所做的就是将索引从变量名移动到第三维的索引
现在,要创建C
数组:
A = [ 1, 2, 3; 4, 5 ,6; 7, 8, 9]
B = [ 11, 22, 33; 44, 55 ,66; 77, 88, 99]
[m,n]=size(A)
C = reshape([A',B']', m, 2, n)
其输出为:
A =
1 2 3
4 5 6
7 8 9
B =
11 22 33
44 55 66
77 88 99
m = 3
n = 3
C =
ans(:,:,1) =
1 11
4 44
7 77
ans(:,:,2) =
2 22
5 55
8 88
ans(:,:,3) =
3 33
6 66
9 99
如您所见,C(:,:,1)
在您的示例中等于C1
,C(:,:,2)=C2
,依此类推。当A
和B
的大小改变时,这一点不会改变。你永远不需要想出新的变量名。你所要做的就是知道你有多少个m×2矩阵
numVars = size(C,3);
注意:这使用了与此处答案相同的技巧:请澄清您的具体问题或添加其他详细信息,以突出显示您所需的内容。正如目前所写的,很难准确地说出你在问什么。请参阅本页以获取澄清此问题的帮助。我认为您可能正在寻找两个矩阵的交错列。这篇文章展示了如何交错行。若要将其转换为列,请先将
A
和B
转置,然后将结果转置。@Schorsch我想我通过添加一个示例改进了我的问题。请看,我的问题现在清楚了吗?使用串联和permute
来构建3D数组,而不是n
单独的矩阵