0

1)int(( heaviside(sym('t')) ),0,0.5 )完美运行,但是当我编辑内置的MATLAB文件 heaviside.m 并将其重命名为 my_heaviside.m 然后在命令窗口中调用它
int(( my_heaviside(sym('t')) ),0,0.5 ) 时显示错误。

2)如何在heaviside的帮助下编写以下分段函数: f(x)= 1, 2<=x <3 其他地方的& 0。请注意,在x=2,我需要f(x)= 1和在x=3,我需要f(x)= 0

3)我想要那个f(x)入点。2 应该以这样一种方式定义,即它可以像第 1 点一样进行符号整合。

4

2 回答 2

0

如果您在函数中使用断点heaviside,那么您将看到 Matlab 在评估时从未真正进入函数heaviside(t)。为什么?的输出应该是什么heaviside(t)?它应该是heaviside(t)!它实际上所做的是转到类定义中的方法heavisidesym该函数的输出只是of 的mupadmex('symobj::map',t.s,'heaviside')另一个名称(这里是对象的私有属性)。 heavisidetssym

此外,当 Matlab 试图整合该heaviside函数时,它无法通过查看 的结构从第一原理整合它mfile,但它使用定理来评估包含它的表达式;因此,不能指望编辑实际的 mupad 文件heaviside并期望 Matlab 找到正确的积分。

于 2013-12-02T17:49:18.660 回答
0

您应该尝试将my_heaviside.m文件内的函数名称从 heaviside 更改为 my_heaviside。

于 2013-06-14T12:59:52.947 回答