MATLAB编码器:稀疏矩阵

MATLAB Coder: sparse matrix

本文关键字:编码器 MATLAB      更新时间:2023-10-16

MATLAB编码器看起来很花哨,可以通过将代码转换为C/C++或MEX来大大加快MATLAB代码的速度。但它似乎不支持稀疏矩阵,也不支持对我的代码至关重要的MATLAB函数sparse。有人知道如何克服这个问题吗?非常感谢!

特征库可以用于处理Matlab函数稀疏,它是用c语言编写的。

正如"libill"所说,你也可以为MATLAB代码的部分生成MEX代码,它不使用稀疏来加快这些部分的速度。

对于稀疏零件,使用上述库。

我对Matlab编码器的理解可能是错误的,但我认为它是一种将Matlab代码转换为C/C++代码的工具。我不确定性能优化是Matlab编码器的目标。

看看suitesparse。它是一个处理大量稀疏操作的C库。在稀疏矩阵的情况下,Matlab"\"运算符实际上使用suitesparse。所以我认为修改Matlab生成的C代码可能会更容易。

HTH

我只是不确定你说的转换是什么意思。我想你的意思是写你自己的mex函数。稀疏包通常以不同的方式处理稀疏矩阵,Matlab也有其独特的处理方法。然而,它们大多使用CSC(或CSR)格式。Matlab也将矩阵保存为CSC格式。

您可以查看许多稀疏包mex函数来了解它是如何实现的。重点是Matlab不允许在其稀疏数据结构中保存显式零。不要试图在Matlab mex函数上保存显式零。Matlab会让你窒息的!