我想知道是否可以在 MATLAB 2013a 中创建我自己的运算符。
例如,假设我想定义一个新运算符===来检查两个矩阵之间的所有元素是否相等。在这种情况下,
x = ones(10,1);
y = ones(10,1);
z = 2*ones(10,1);
all(x==y) = 1
x===y = 0
all(z==y) = 0
z===y =0
Run Code Online (Sandbox Code Playgroud)
有可能实现这样的东西吗?如果是这样,我该怎么办?
[摘自我之前的回答]
尝试使用operator. 它用于定义新的用户定义运算符符号或删除它们(不过您将需要符号工具箱)。
operator(symb, f, T, prio)定义了一个优先级symb为T(Prefix | Postfix | Binary | Nary)类型的新运算符符号prio。该函数f使用 new 运算符计算表达式。
给定运算符符号“++”,例如,对函数求值f,解析器构建以下表达式,具体取决于运算符的类型,其中:
前缀:输入 ++x 导致 f(x)。
后缀:输入 x++ 结果为 f(x)。
二进制:输入 x ++ y ++ z 结果为 f(f(x, y), z)。
Nary:输入 x ++ y ++ z 结果为 f(x, y, z))。
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |