未定义的功能'稀疏'对于' sym'类型的输入参数。 (Matlab的)

时间:2016-02-08 19:53:49

标签: matlab symbolic-math

我试图创建一个包含非数字元素的稀疏矩阵。

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)

返回此错误:

  

未定义的功能'稀疏'输入参数类型' sym'。

     

Test2中的错误(第8行)
  稀疏(I,J,S,2,2)

3 个答案:

答案 0 :(得分:2)

正如我在评论中所说,Matlab中没有稀疏符号矩阵。这在您使用的sparse形式的第三个输入参数的文档中说明:

  

v - 值
  标量|矢量|基质

...

  

数据类型: double |逻辑

Matlab的符号数学(和MuPAD)可以在内部利用内在的稀疏性(用于存储和计算)。

答案 1 :(得分:1)

非常简单:Matlab没有将符号变量作为参数的函数sparse()。 (s是你的问题)唯一的sparse()函数只接受数字元素。

答案 2 :(得分:0)

@horchler是正确的,更新版本的Matlab不支持在符号矩阵上使用sparse命令。但是,旧版本的Matlab允许这样做(我试过R2011b并且它可以在那里工作)。因此,您可能会遇到产生上述错误的遗留代码。在这种情况下,您可能必须手动删除sparse命令。