MATLAB中的多态返回类型

时间:2015-11-24 06:31:13

标签: matlab polymorphism

MATLAB中是否存在多态返回?我希望我可以说如果一个函数调用一个对象的方法之一,然后指定为了计算它返回一个指定属性的值,我将返回什么。但我现在可能要胡说八道了。请确认我在做梦。感谢。

1 个答案:

答案 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

事先无法知道结果如何。