Matlab中矩阵的所有可能的行对的线性组合

时间:2018-11-09 14:31:38

标签: matlab

我在Matlab中有一个2x1向量,称为x

clear
rng default
x=[5;6]; %[x1;x2]

我对x应用了两个线性变换,并获得了6x1向量A1A2

线性变换1

B1=10^6* [1 1;
          0 0;
          0 0;
          0 0;
          0 0;
          0 0] - 10^6 * [0 0;
                         1 1;
                         0 0;
                         0 0;
                         0 0;
                         0 0] + [0  0;
                                 0  0;
                                -1  0;
                                 0 -1;
                                -1  1;
                                 0  0];
A1=B1*x; 
%A1=[10^6*(x1+x2); -10^6(x1+x2); -x1; -x2; x2-x1; 0]

线性变换2

B2=10^6* [1 1;
          0 0;
          0 0;
          0 0;
          0 0;
          0 0] - 10^6 * [0 0;
                         1 1;
                         0 0;
                         0 0;
                         0 0;
                         0 0] + [0  0;
                                 0  0;
                                -1  1;
                                 0 -1;
                                -1  0;
                                 0  0];
A2=B2*x; 
%A2=[10^6*(x1+x2); -10^6(x1+x2); x2-x1; -x1; -x2; 0]

y1x2向量,其中第一元素y1A1中选取,第二元素y2A2中选取。由于A1A2都具有6个元素,因此y可以采用36个值。假设Y36x2矩阵,在每行中列出y的可能值。

因此

%Y=[10^6*(x1+x2)  10^6*(x1+x2);
%  10^6*(x1+x2)  -10^6*(x1+x2);
%  10^6*(x1+x2)   x2-x1;
%  10^6*(x1+x2)  -x2;
%  10^6*(x1+x2)  -x1;
%  10^6*(x1+x2)  -0;
% -10^6*(x1+x2)   10^6*(x1+x2);
%  ...]

我希望您能帮忙写下一段代码,以构造大小为C的矩阵(2K)x2

  • K=nchoosek(36,2),即K=36!/(2*34!)=630

  • C*x=D,其中D大小为2Kx1的{​​{1}}报告,针对(i,j)

    < / li>

Y

因此

[-Y(i,1)+Y(j,1); 
  -Y(i,2)+Y(j,2)]

评论:我要澄清一下,我知道哪些元素应该位于%D=[-10^6*(x1+x2)+10^6*(x1+x2); %rows 1,2 (first coordinate) % -10^6*(x1+x2)-10^6*(x1+x2); %rows 1,2 (second coordinate) % -10^6*(x1+x2)+10^6*(x1+x2); %rows 1,3 (first coordinate) % -10^6*(x1+x2)+x2-x1; %rows 1,3 (second coordinate) % ...] 中才能获得所需的C,但我想避免“手动插入” ”。应该有一些“模式”可以快速构建D

此外,理想情况下,我希望代码不要依赖CB1的特定内容,即:假设我将B2B1更改为其他内容产生B2的不同线性变换的矩阵;我希望代码使x保持有效。

0 个答案:

没有答案