终焉。 2019-04-26 22:39 采纳率: 0%
浏览 1049

MATLAB代码出错错在哪里?

%演示subs的各种置换方式
%产生符号函数
clear
syms a b x;
f = a*sin(x)+b
%符号表达式置换,得到新的符号表达式
f1 = subs(f,sin(x),'log(y)') %subs的第三输入量可以使“字符串”
class(f1) %为观察结果的类型而设
%单个变量被双精度数字置换,结果依然是符号对象
f2 = subs(f,a,3.11) %双精度数字3.11先被sym(3.11)处理后再代入
class(f2) %为观察结果的类型
%所有变量被数字(至少含一个符号数字)置换,结果依然是符号对象
f3 = subs(f,{a,b,x},{2,5,sym('pi/3')}) %注意胞元数组的用法
class(f3)
%所有变量被双精度数值置换,结果是双精度数字
format %为恢复对双精度数字显示的默认设置
format compact %为使在Motebook中显示紧凑
f4 = subs(f,{a,b,x},{2,5,pi/3}) %注意胞元数组的用法
class(f4)
%一个变量被双精度数组置换,得到符号数组
f5 = subs(f,x,0:pi/2:pi) %注意:该指令的理论结果应是[b,a+b,b]
class(f5)
%所有变量被双精度数(其中一个是数组)置换,得到双精度数组
t = 0:pi/10:2*pi;
f6 = subs(f,{a,b,x},{2,3,t}) %注意胞元数组的用法
plot(t,f6) %绘图
%通过两次置换获得双精度数组
k = (0.5:0.1:1)';
f6 = subs(subs(f,{a,b},{k,2}),x,t); %注意两次置换
size(f6) %观察f6数组大小
plot(t,f6) %绘图

运行结果
f =

b + a*sin(x)

错误使用 sym>convertChar (line 1448)
Character vectors and strings in the first argument can only specify a variable or number. To evaluate character vectors and strings
representing symbolic expressions, use 'str2sym'.

出错 sym>tomupad (line 1214)
S = convertChar(x);

出错 sym (line 211)
S.s = tomupad(x);

出错 sym/subs>normalize (line 211)
Y = {sym(Y)};

出错 sym/subs>mupadsubs (line 157)
[X2,Y2,symX,symY] = normalize(X,Y); %#ok

出错 sym/subs (line 145)
G = mupadsubs(F,X,Y);

出错 Li224 (line 7)
f1 = subs(f,sin(x),'log(y)') %subs的第三输入量可以使“字符串”

  • 写回答

1条回答 默认 最新

  • 摸森堡 2020-04-10 19:51
    关注

    我把你的程序运行了一遍,这是结果,并没有出错
    图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable