Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 从2个不同的m-by-n矩阵中迭代提取列,并连接到一组n个不同的m-by-2矩阵中_Arrays_Matlab_Loops_Memory_Matrix - Fatal编程技术网

Arrays 从2个不同的m-by-n矩阵中迭代提取列,并连接到一组n个不同的m-by-2矩阵中

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

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]


C3=[3,33;6,66;9,99]

我要做的第一件事就是更改变量名。这主要是为了使引用变量更容易,特别是当mn发生变化时。而不是写作

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
单独的矩阵