【问题标题】:f=415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664 ; fplot(@(bt) f,[0.01 1],'b')f=415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664 ; fplot(@(bt) f,[0.01 1],'b')
【发布时间】:2019-07-19 01:58:50
【问题描述】:

这些代码是错误的:

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')

他们不一样吗?

【问题讨论】:

    标签: matlab


    【解决方案1】:
    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')
    

    【讨论】:

    • 我添加了 '@(bt)' 因为我看到了 fplot 函数:fplot(@(x) sin(x))。我一直认为'@'不能删除。
    【解决方案2】:

    是的,它们是不同的。对于第一个代码:

    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 就被表示为自变量。

    【讨论】:

    • 我编辑了我的问题,所以我表示 syms bt。在这种情况下,为什么第一个是错误的?
    • 在代码 fplot(@(bt)f) 中,bt 对 f 没有任何意义。你知道如何使用@(x)吗?例如,f = @(x)(x+1),你可以使用f(1)得到结果。但是在@(bt)f,我不知道怎么理解。顺便说一句,如果你真的喜欢使用这种代码,@Adam 提供了正确的代码。
    • 谢谢你,但我还是不知道怎么用@。
    猜你喜欢
    • 2017-05-04
    • 1970-01-01
    • 2019-12-19
    • 2015-08-13
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多