2016-02-08 99 views
2

我正在嘗試創建一個具有非數字元素的稀疏矩陣。對於'sym'類型的輸入參數未定義函數'稀疏'。 (Matlab)

syms a b c; 

i = [1 1 2 2]; 
j = [1 2 1 2]; 
s = [a b 3 c]; 

sparse(i,j,s,2,2) 

返回此錯誤:

Undefined function 'sparse' for input arguments of type 'sym'.

Error in Test2 (line 8)
sparse(i,j,s,2,2)

+0

你有符號數學工具箱嗎? – excaza

+1

此外,這不是一個稀疏矩陣。如果有很多* zero *元素,稀疏矩陣纔有意義。你沒有。 – excaza

+1

在Matlab中沒有這樣的稀疏符號矩陣。您可以將稀疏(數字)矩陣轉換爲符號,但不能以其他方式進行轉換。 – horchler

回答

1

這很簡單:Matlab具有無功能sparse()這需要象徵性的變量作爲自變量。 (s是你的問題)唯一的sparse()函數只需要數字元素。

2

正如我在評論中指出的那樣,在Matlab中沒有像稀疏符號矩陣那樣的東西。這是在文檔中表示爲的sparse形式的第三個輸入參數你使用:

v — Values
scalar | vector | matrix

...

Data Types: double | logical

Matlab的符號數學(和MuPAD)可能採取的先天優勢內部稀疏(用於存儲和計算)。

0

@horchler是正確的,更新版本的Matlab不支持在符號矩陣上使用sparse命令。然而,老版本的Matlab允許這樣做(我試過R2011b,它在那裏工作)。因此,您可能會遇到產生上述錯誤的遺留代碼。在這種情況下,您可能需要手動刪除sparse命令。

相關問題