如果我想在Matlab中制作y = 1 / x的图,我可以使用以下代码:
X=-10:0.1:10;
Y=1./(X);
plot(X,Y);
但我想使用符号函数,以便区分它们,所以我有这个代码:
syms x;
f(x) = 1./x;
X=-10:0.1:10;
Y=f(X);
plot(X,Y);
不幸的是我收到了错误
MuPAD命令出错:除以零。 [_电源]
这是合理的,因为在某些时候它会尝试将1除以0.我怎样才能使其工作,以便当零除零时返回Inf
,就像在表格的常规计算中一样a=6/0;
?
答案 0 :(得分:1)
ezplot
函数可用于直接绘制符号函数和表达式。
syms x;
f(x) = 1/x;
ezplot(f,[-10 10]);
如果要将表达式转换为可以数字计算的值,可以使用matlabFunction
将符号函数转换为function handle:
syms x;
f(x) = 1/x;
X = -10:0.1:10;
F = matlabFunction(f);
plot(X,F(X));
为什么MuPAD不为1/0
返回infinity
?在浮点数中,这是明确定义的,但在数学中,divison by zero未定义。如果您想完全在MuPAD中评估您的功能,则需要call underlying functions from Matlab和handle errors。