2016-08-18 63 views
0

我有一組.mat文件,它們都根據其態度表示對象上的力。我想通過指定正確的名稱將它們加載到Simulink模擬器中,但一次加載它們。Matlab&Simulink - 在Simulink模擬器中加載特定的.mat

我嘗試了一個Matlab函數,但它似乎並沒有工作,好像函數「load」不能通過Simulink使用。

如果有人有想法,我將不勝感激!

+0

使用MATLAB功能塊中的外部函數並從該函數調用加載。 – Navan

回答

0

您可能遇到了範圍問題,無法將.mat文件加載到正確的工作區中。默認情況下,Simulink使用Base工作區來查找變量。確保函數返回並在此處設置正確的變量,通常使用腳本來實現這一點比較容易。

這確實意味着您將使用基本工作空間,這可能不合意。如果你想保持數據封裝,你可以生成一個masked subsystem並從掩碼的初始化腳本中加載參數。這將定義掩碼子系統內任何塊可訪問的變量。

0

退房此鏈接: https://in.mathworks.com/help/simulink/ug/functions-supported-for-code-generation--categorical-list.html

我會在這裏引述有關的東西:

- 使用僅生成MEX或代碼時的Simulink仿真。

- 要加載編譯時常量,請使用coder.load。

- 不支持在沒有賦值給結構或數組的情況下使用該函數。例如,使用S = load(filename),而不是使用 load(filename)。

- 輸出S必須是沒有任何下標的結構或數組的名稱。例如,S(i)= load('myFile.mat')是不允許的。

- 加載的參數必須是編譯時常量字符向量。

- 不支持加載對象。

- 如果MAT文件包含不受支持的構造,請使用load(filename,variables)加載僅受支持的構造。

- 您不能使用保存在用於代碼生成的函數中。代碼生成器不支持保存功能。此外,你 不能使用coder.extrinsic與保存。在生成代碼之前, 可以使用保存將工作區數據保存到MAT文件。

- 您必須使用coder.varsize來顯式聲明使用加載函數加載的可變大小的數據。