这些代码是错误的:
syms bt;
f=415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664
fplot(@(bt) f,[0.01 1],'b')
但是这些代码是正确的:
syms bt;
fplot(@(bt) 415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664,[0.01 1],'b')
它们不一样吗?
syms bt;
f=415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664
fplot(@(bt) f,[0.01 1],'b')
这里的语法完全错误。
将
bt
传递给函数 f
作为参数,对于 syms
函数只需使用 subs
@(bt) f --------> @(bt) subs(f)
syms bt;
f=415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664
fplot(@(bt) subs(f),[0.01 1],'b')
正确语法:
既然
f
已经是一个函数了,为什么要定义一个 new function handle
复制现有功能?
有了
fplot()
就可以直接使用syms
功能
syms bt;
f=415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664
fplot(f,[0.01 1],'b')
是的,它们是不同的。对于第一个代码:
f=415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664
fplot(@(bt) f,[0.01 1],'b')
f不知道什么是bt。这样,就会出现错误。在第二个代码中:
fplot(@(bt) 415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664,[0.01 1],'b'
bt 被表示为自变量。
如果您想使用第一个代码,您可以编码为:
f=@(bt)(415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664)
fplot(@(bt) f(bt),[0.01 1],'b')
这样,bt就被表示为自变量。