作业帮 > 综合 > 作业

matlab程序运行错误 “Z must be a matrix,not a scalar or vector.”

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/04/29 08:32:36
matlab程序运行错误 “Z must be a matrix,not a scalar or vector.”
syms a b
Jm=[1,a,b;2,3,4;6,b,a]
MM=det(Jm)
[a,b]=meshgrid(-2:0.1:2);
surf(a,b,MM);
我理解这个错误是说MM是矩阵的意思,这个程序该如何修改才行,而且需要运行的程序和这个类似,比这个还复杂,也是出现类似的问题.
syms x y
[x,y] = meshgrid(-2:0.1:2);
z = y.*exp(-x.^2-y.^2);
surf(x,y,z);
这个程序就可以出结果!
matlab程序运行错误 “Z must be a matrix,not a scalar or vector.”
clear;
clc;
syms a b
Jm = [1,a,b;2,3,4;6,b,a]
MM = det(Jm)
[A,B] = meshgrid(-2:0.1:2);
MM = subs(MM,{a,b},{A,B});
% MM = subs(MM,'a',A);
% MM = subs(MM,'b',B);
surf(A,B,MM);
自己运行,不在此贴图
有问题可追问
再问: 你好,非常感谢你的回答,上述问题我已经解决了,现在遇到的新问题是:我想求雅可比矩阵的条件数(这个函数cond),然后求一个与上述类似的三维图。区别是:上面求的是关于雅可比矩阵的,而现在求的是关于雅可比矩阵条件数的。非常感谢!该如和改写上面的程序!非常感谢!
再答: clear; clc; syms a b Jm = [1,a,b;2,3,4;6,b,a]; aa = trace(Jm'*Jm); bb = trace(inv(Jm)'*inv(Jm)); con = sqrt(a)*sqrt(b); [A,B] = meshgrid(-2:0.1:2); MM = abs(subs(con,{a,b},{A,B})); %%%% 由于你所给的A,B会造成复数的产生,所以给你加了绝对值 surf(A,B,MM);