2015-11-24 70 views
0

MATLAB中是否存在多態返回?如果一個函數調用一個對象的某個方法,然後指定它用於計算,它會從指定的屬性返回一個值,我希望我能說出我要返回的內容。但我現在可能是在胡說。請確認我在做夢。謝謝。MATLAB中的多態返回類型

回答

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 

沒有辦法事先知道結果如何。

+0

謝謝。雖然這個文檔鏈接並沒有真正展示'在不同的條件下返回不同的類型'。 「不同的條件」是什麼意思? –

+0

@ZakiMohzani我已經添加了一個基於參數或其他參數返回不同類型的函數的示例。 – chthonicdaemon

+0

是的,就像我想的那樣。感謝您的澄清。 –