matlab 重载技术,为matlab中的类重载每个函数操作符

我创建了一个类,为了所有实际目的(虽然它比看起来更复杂)可以被认为是一个matlab实数。

在课堂上,我可以重载大量的matlab运算符,如plus,mpower等。

这可能是不可能的,但我将如何去重载我的课程的任何功能?

换句话说,假设我有一个任意函数f,它取实数并输出实数,并且说X是我的类的一个实例。我希望f(X)能够被matlab正确解释(当然,我有一种自然的方式来接受一个函数指针并将其应用到我的类中,我将在代码中进行这种操作)。

我可以看到他们的问题:matlab可能无法看到函数f将实数作为输入。但我会留给用户不要搞乱他们的函数调用。

我有什么意义吗?

我不认为这是可能的,但如果是的话,这将是非常棒的。

ps:我知道我可以通过创建一个以funciton句柄作为输入的方法来绕过它,但它不太漂亮。

谢谢!

编辑:

对不起,我意识到这有点令人困惑。我会更清楚。假设我有一个表示随机,实际变量的类(为简单起见,表示离散集)。我的课程包含随机变量的概率分布及其可能的值。

对于任意两个随机变量X,Y,总和X + Y是明确定义的,所以如果我有代表随机变量的实例X和Y,那么如果Z = X + Y定义了一个等于总和的新随机变量的X和Y,具有适当的设置和分布。我已经做到了,通过重载加号运算符。这真好。

假设我有一个任意函数f,比如说“cos”。那么,对于任何随机变量X,cos(X)也是一个随机变量,如果我可以只写Z = cos(X),它会自动创建我的类的实例,计算适当的域并且概率分布。

问题是我希望这个自动操作发生在任何函数f - 我不想手动重载每个常用函数(特别是因为我想让这个函数与用户定义的函数f一起工作)。

再举一个例子:

我创建了一个随机变量X,域为[-2,-1,0,1,2],概率为[1 / 5,1 / 5,1 / 5,1 / 5,

1/5]

我创建了一个(奇怪的)函数f

如果x = -2或2,则f(x)= x

否则,f(x)= x ^ 2

然后,通过设置Z = f(X),我希望matlab自动创建一个带有域{-2,0,1,2}的随机变量Z

和概率[1/5,1 / 5,2 / 5,1 / 5]

数学上,我知道如何做到这一点。但是我需要拦截并重载我的课程的任何函数调用。

这有任何意义吗?

ps:我没有接受过面向对象编程方面的正式培训,所以我有时可能会使用错误的词作为概念。

再次感谢您的帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值