我想将矩阵乘积 AX-XB 转换为向量形式。
那是Cx
哪里x=vec(X)
然而我发现最后一项(XB)
很难向量化,它会非常稀疏。
有什么有效的方法可以做到这一点?
请参阅此链接以转换为矢量形式
如果您不需要C
显式(例如迭代求解器),则可以定义一个抽象的线性运算符,该运算符返回矢量化乘积C*x
。不确定,Matlab 中是否有像 SciPy's 这样的特定函数LinearOperator
,但匿名函数也应该这样做:
C_x = @(X) vec(A*X-X*B);
其中vec
'vectorises'矩阵,例如X(:)
@Jonas指出的通过。
编辑:@Eitan T 在下面建议了一个封闭的表格!
有关如何使用匿名函数和函数句柄的信息,请参见Matlab 帮助。
这里C
给出了显式的公式。