有没有办法在MATLAB中定义其他的中缀运算符?
具体来说,我想定义两个中缀运算符->
和<->
(这些符号是理想的,但如果需要,它可以是单个字符),它调用函数{{1}和implies
的方式与iff
调用&
和and
调用+
的方式相同。
plus
如果有必要,我很高兴重载function z = implies(x, y)
z = ~x|y;
function z = iff(x, y)
z = x&y | ~x&~y;
。
答案 0 :(得分:5)
没有办法在MATLAB中定义新的运算符,因为像this one这样的几个线程建议。但是,如果你想重载现有的运算符为你自己的类,这里是MATLAB的documentation page,虽然我确定你已经看过它了
答案 1 :(得分:2)
使用operator
怎么样?它用于定义新的用户定义的运算符符号或删除它们。
operator(symb, f, T, prio)
定义了symb
类型的新运算符符号T
,优先级为prio
。函数f
使用new运算符计算表达式。
给定运算符符号“++”,比如评估函数f
,解析器构建以下表达式,具体取决于运算符的类型:
前缀:输入++ x导致f(x)。
Postfix :输入x ++导致f(x)。
二进制:输入x ++ y ++ z导致f(f(x,y),z)。
Nary :输入x ++ y ++ z导致f(x,y,z))。
请参阅上面链接中的matlab文档。