2011-04-07 217 views
1

例如我有創建矩陣2x2的函數:[1 2; 3 4] 我有這樣簡單的功能:無法在Simulink的Matlab函數中輸出多維矩陣

function[result] = Rho(x) 
// I've tried and so: 
result = [1 2; 3 4]; 
// And so: 
result(1,1) = 1; 
result(1,2) = 2; 
result(2,1) = 3; 
result(2,2) = 4; 

在Matlab中窗口我看到正確的結果:

>> Rho(1) 
ans = 
    1  2 
    3  4 

但在Simulink我總是得到[1; 2; 3; 4]。我的錯誤在哪裏?

enter image description here

P.S.我忘了刪除函數的參數x,因爲在實際函數中,我根據參數x製作矩陣。但它在我們的例子中不起作用

回答

1

您遇到的問題可能是由於您的MATLAB功能塊(現在在新版本中稱爲Interpreted MATLAB Function block)的參數設置所致。看看參數對話框該塊:

enter image description here

請注意,你將要設置輸出尺寸爲2,塌陷2 d結果取消1-d檢查框。如果這是左邊的檢查,那麼你的2×2矩陣將變成一維數組,通過從左到右提取每列的值,在你的例子中最終爲[1 3 2 4]

一旦你應用了上述改變,那麼你所要做的就是調整你的Display block,以便它顯示你的2行和2列。

+0

非常感謝。它有幫助。我應該在塊屬性中注意到這個選項)) – 2011-04-07 21:22:46