是否可以在MATLAB中实现用户定义的运算符?

是否可以在MATLAB中实现用户定义的运算符?,matlab,Matlab,我想知道是否有可能在Matlab2013a中创建自己的运算符 例如,假设我想定义一个新的操作符==,以检查两个矩阵之间的所有元素是否相等。在这种情况下, 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 有可能实现这样的东西吗?如果是的话,我该怎么做呢 [摘自我的一张照片] 尝试使用。它用于定义新的用户定义运算符符号或删除它们(不过您需要符号工具箱

我想知道是否有可能在Matlab2013a中创建自己的运算符

例如,假设我想定义一个新的操作符
==
,以检查两个矩阵之间的所有元素是否相等。在这种情况下,

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
有可能实现这样的东西吗?如果是的话,我该怎么做呢

[摘自我的一张照片]

尝试使用。它用于定义新的用户定义运算符符号或删除它们(不过您需要符号工具箱)

运算符(symb,f,T,prio)
定义了一个新的运算符符号
symb
,其类型为
T
(前缀|后缀|二进制| Nary),优先级为
prio
。函数
f
使用新运算符计算表达式

给定运算符符号“+”,例如,使用求值函数
f
,解析器根据运算符的类型构建以下表达式,其中:

前缀:输入++x将产生f(x)

后缀:输入x++将产生f(x)

二进制文件:输入x++y++z将产生f(f(x,y),z)

Nary:输入x++y++z将产生f(x,y,z))


查看matlab的更多信息。

我非常确定matlab在(运算符拼写)和(实现函数的名称)之间有固定的映射,例如,
+
转到
plus
*
转到
mtimes
。该系统允许您定义每个操作符在您自己的对象类型上使用时的行为,但新操作符必须作为普通函数来完成。