我试图创建一个包含非数字元素的稀疏矩阵。
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)
答案 0 :(得分:2)
正如我在评论中所说,Matlab中没有稀疏符号矩阵。这在您使用的sparse
形式的第三个输入参数的文档中说明:
v - 值
标量|矢量|基质
...
数据类型: double |逻辑
Matlab的符号数学(和MuPAD)可以在内部利用内在的稀疏性(用于存储和计算)。
答案 1 :(得分:1)
非常简单:Matlab没有将符号变量作为参数的函数sparse()
。 (s
是你的问题)唯一的sparse()函数只接受数字元素。
答案 2 :(得分:0)
@horchler是正确的,更新版本的Matlab不支持在符号矩阵上使用sparse
命令。但是,旧版本的Matlab允许这样做(我试过R2011b
并且它可以在那里工作)。因此,您可能会遇到产生上述错误的遗留代码。在这种情况下,您可能必须手动删除sparse
命令。