0

簡単そうですが、苦手です。

2つの標準基底を乗算した次の行列を生成したいと思います。

$ E_ {ij}:=(e_i-e_j)(e_i-e_j)^ T $

誰かがそれを数行で書く方法を知っていますか?

ありがとう

4

2 に答える 2

0

d x N基底からの各ベクトルがサイズの行列(列方向に配置されたベクトル)であると仮定します。

e1 = rand(4, 3); % random 4 x 3 matrix
e2 = rand(4, 3); 

次に、行列の各エントリ、つまり2つの単一ベクトル間の内積は次の式で与えられます。

E(i,j) = (e1(:,i) - e2(:,j))' *(e1(:,i) - e2(:,j)); 

逆のことがN x d行列にも当てはまります。

E(i,j) = (e1(i,:) - e2(j,:)) * (e1(i,:) - e2(j,:))';  

最初のケースでは、単一のワンライナーでマトリックス全体を構築できます。

E = (e1 - e2)' * (e1 - e2); 
于 2013-02-20T03:35:20.217 に答える