在matlab中矢量化矩阵乘法

时间:2013-04-30 05:57:29

标签: matlab matrix

我想将矩阵乘积AX-XB转换为矢量形式。

Cx x=vec(X)

然而我发现最后一个术语(XB)非常难以矢量化,它会非常稀疏。

有效的方法吗?

see this link转换为矢量形式

1 个答案:

答案 0 :(得分:1)

如果您不需要C显式 - 例如迭代求解器 - 您可以定义一个抽象线性运算符,它返回向量化产品C*x。不确定,如果Matlab中存在SciPy的LinearOperator这样的特定函数,但匿名函数也应该这样做:

C_x = @(X) vec(A*X-X*B);

其中vec'向量化'矩阵,例如正如@Jonas指出的那样,通过X(:)

编辑:@Eitan T在下面提出了一个封闭的表格!!

有关如何使用匿名函数和函数句柄,请参阅Matlab Help

明确C的公式为here