我在 Matlab 中有一个矩阵乘法,如下所示
在哪里指换位。是维度为 mxn 且 W = diag(G) 的关联矩阵,其中 G 是 1 xn 行向量,使得 diag(G) nx n。所以基本上,当我有一个大向量 G 时,例如超过 1000 个元素,我的内存不足,因为我有一个包含 nxn 个元素的对角矩阵,其中大多数元素为零。有没有办法在 Matlab 中以更有效的方式编写这种乘法?
我在 Matlab 中有一个矩阵乘法,如下所示
在哪里指换位。是维度为 mxn 且 W = diag(G) 的关联矩阵,其中 G 是 1 xn 行向量,使得 diag(G) nx n。所以基本上,当我有一个大向量 G 时,例如超过 1000 个元素,我的内存不足,因为我有一个包含 nxn 个元素的对角矩阵,其中大多数元素为零。有没有办法在 Matlab 中以更有效的方式编写这种乘法?
N * (G' .* N')
几个版本前,Matlab 引入了单例扩展:在括号中的表达式中矩阵G'
“升级”为元素乘积之前的矩阵(所有列相等)。
这个新特性提供了一种更简洁的方式来实现以前需要的一些技巧bsxfun
。