MATLAB中是否存在多态返回?我希望我可以说如果一个函数调用一个对象的方法之一,然后指定为了计算它返回一个指定属性的值,我将返回什么。但我现在可能要胡说八道了。请确认我在做梦。感谢。
答案 0 :(得分:2)
您无法在Matlab中实际指定返回类型,只需返回一个值即可。相同的功能可以在不同条件下轻松返回不同类型。您可以通过查看documentation来验证函数定义中是否没有类型信息。
例如,查看此函数,该函数可以根据输入参数返回字符串或矩阵:
function r = strange(arg)
if arg == 1
r = 'string';
else
r = [1, 2; 3 4];
end
end
现在,这个例子可以通过静态分析来处理,但请考虑一下:
function r = evenstranger()
if rand < 0.5
r = 'string';
else
r = [1, 2; 3, 4];
end
end
事先无法知道结果如何。