2012-07-16 203 views
0

我有一個S函數,將數組作爲Excel文件的輸入,並使用數組進行計算。 S功能塊的最終結果是一個Nx1陣列。我已經嘗試將Nx1數組分配給sFunc.OutputPort(1).Data,但它給了我一個錯誤,說我正試圖將長度爲N的矢量分配給長度爲1的矢量。Matlab Simulink - 如何從我的2級S函數輸出數組?

我希望能夠輸出數組並將其輸入到Simulink中的另一個S函數中,並將其輸入到另一個數組(時間)中繪製數據的範圍。

任何幫助將不勝感激!

謝謝!

+0

您是否嘗試過加入['simout'](http://www.mathworks.com/幫助/工具箱/ simulink/slref/toworkspace.html)塊輸出你的S功能? (我想也許我誤解了你的問題)。 – kevlar1818 2012-07-16 16:17:22

回答

1

對於Level-2的M-文件S-功能,你應該明確地指定在設置的外港尺寸()函數:

function setup(block) 
.... 
block.OutputPort(1).Dimensions  = [N 1]; 

然後你可以輸出你的數組像這樣的輸出功能:

function Output(block) 
... 
block.OutputPort(1).Data = ones(N,1); 

我在一個虛擬的L-2 MS-FCN嘗試這樣做,它工作得很好......