簡體   English   中英

MATLAB Coder:稀疏矩陣

[英]MATLAB Coder: sparse matrix

MATLAB Coder似乎很花哨,可以通過將代碼轉換為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會讓您窒息!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM