1.话说有些同学呀
就是不学习一下基础知识,仅凭主观臆想写程序,今天遇到了一个这样的问题;
2.程序十分简单
如下:
syms x;
f1=sym('x^2+1');
ezplot(f1);
3.运行报错
如下:
错误使用 sym>convertChar
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 (第 1608 行)
S = convertChar(x);
出错 sym (第 400 行)
S.s = tomupad(x);
出错 freexyn67 (第 6 行)
f1=sym('x^2+1');
4.这个问题难吗
一点也不,稍微了解一下符号运算的用法,就会知道,sym函数是声明符号变量的,而创建符号表达式直接写表达式即可(旧版本也可把符号表达式放入单引号中,写成字符向量的形式,新版本不建议),并不需要再使用sym函数。
另外,有些同学一眼看到“出错 sym…”,立刻手足无措,以为sym函数出了问题,于是从这方面入手检查纠错,显然是非常错误的做法,大家必须明白,Matlab自带的函数是不会出错的,如果出错了,原因只有一个:你的用法错了!
5.修改后的程序
如下:
syms x;
% f1=sym('x^2+1');
f1=x^2+1;
ezplot(f1);
End

本文讨论了一位程序员在使用MATLAB时遇到的问题,即尝试用sym函数处理符号表达式导致的错误。作者指出,sym函数用于声明符号变量,而直接书写表达式即可创建符号表达式,不需要额外使用sym。修正后的代码展示了正确的做法,即去掉sym函数,直接使用变量和表达式。作者强调,MATLAB内置函数出错通常是由于使用者的用法不当,而不是函数本身的问题。

2158

被折叠的 条评论
为什么被折叠?



