1

私はmxn行列を持っています。n列のペアごとの減算から得られた新しい行列を作成するのを手伝ってくれませんか? n は非常に大きくなる可能性があります。

たとえば、A は 3 x 4 の行列です。

octave:39> A = [1, 2, 3, 4; 11, 22, 33, 44; 111, 222, 333, 444]

A =

     1     2     3     4
    11    22    33    44
   111   222   333   444

行列Bを作りたい:

octave:40> B = [A(:,1)-A(:,2), A(:,1)-A(:,3), A(:,1)-A(:,4), A(:,2)-A(:,3), A(:,2)-A(:,4), A(:,3)-A(:,4)]

B =

    -1    -2    -3    -1    -2    -1
   -11   -22   -33   -11   -22   -11
  -111  -222  -333  -111  -222  -111

ご親切にありがとうございました!

4

1 に答える 1

1
[m n]=size(a);
k=1;
b=zeros(m,nchoosek(n,2));
for i=1:n
  for j=i+1:n
    b(:,k)=a(:,i)-a(:,j);
    k=k+1;
  end
end
于 2013-09-07T17:27:13.910 に答える