這似乎很容易,但我不擅長它。MATLAB:簡單的方法來乘以標準基礎
我想產生以下矩陣被乘以兩個標準基礎:
$ E_ {IJ}:=(e_i - e_j)(e_i - e_j)^ T $
任何機構都知道如何在幾行寫?
由於
這似乎很容易,但我不擅長它。MATLAB:簡單的方法來乘以標準基礎
我想產生以下矩陣被乘以兩個標準基礎:
$ E_ {IJ}:=(e_i - e_j)(e_i - e_j)^ T $
任何機構都知道如何在幾行寫?
由於
由於我們現在處理的是正交標準的基礎元素,那麼
e_i * e_j^T
是一個除了i,j
-條目等於零之外的稀疏矩陣。
所以,如果ii
和jj
是兩個基向量的指標和n
是維度,然後:
Eij = sparse([ii ii jj jj], [ii jj ii jj], [1 -1 -1 1], n, n);
假設從基礎每個向量是的矩陣大小d x N
(矢量排列逐列):
e1 = rand(4, 3); % random 4 x 3 matrix
e2 = rand(4, 3);
然後在矩陣中的每個條目,即,兩者之間的內積單個載體將通過
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);
感謝您的回答。但是e是所有在第i位置的矢量,而其他條目都是零。他們不再是矩陣。 – Royeh 2013-02-20 08:24:35