这似乎很容易,但我不擅长它。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