我的模型中有一個2D矩陣/數組,如圖所示。我需要能夠隨機索引/訪問它並將其作爲信號傳遞。我該怎麼做呢?在Simulink中訪問/索引數組
我無法使用來自文件塊,因爲我的嵌入式設計的存儲空間被強制爲雙倍和太大。
它沒有出現我可以使用從工作區塊...因爲這個數組在我的模型中定義爲SoundArray。
這似乎應該是這麼簡單,但我無法弄清楚。我能想到的唯一方法就是在自定義C代碼中......我不想這樣做。
由於
Array Definition and Model At Bottom
我的模型中有一個2D矩陣/數組,如圖所示。我需要能夠隨機索引/訪問它並將其作爲信號傳遞。我該怎麼做呢?在Simulink中訪問/索引數組
我無法使用來自文件塊,因爲我的嵌入式設計的存儲空間被強制爲雙倍和太大。
它沒有出現我可以使用從工作區塊...因爲這個數組在我的模型中定義爲SoundArray。
這似乎應該是這麼簡單,但我無法弄清楚。我能想到的唯一方法就是在自定義C代碼中......我不想這樣做。
由於
Array Definition and Model At Bottom
甲MATLAB函數塊(以前EML塊)可以拿起模型工作區的數據,如果它是在「參數」 範圍和你在功能塊定義一個參數輸入。然後,您可以使用其他輸入來控制隨機訪問,然後將所需位置作爲Matlab功能塊的信號輸出返回。
function y = fcn(i,j,soundArray)
y = soundArray(i,j);
(凡soundArray被定義爲參數,以及i和j是輸入)
編輯: 或定義數據存儲存儲器(添加定義塊)。然後爲該內存放置一個數據存儲讀取塊,該塊將被路由到一個具有2維的選擇器塊,併爲這兩個維度「開始索引(端口)」。 我相信你可以使用模型工作區數據初始化數據存儲內存,但我不認爲模型工作區數據在模擬過程中是「實時的」。
我的問題是,SoundArray是一個變量...不是一個常量。 Matlab: 「參數」 「常量,其值在MATLAB®工作區中定義,或者源自您在父級屏蔽子系統中定義和初始化的Simulink®塊參數。 Stateflow數據對象必須與參數名稱相同。「 – willworknow
因此,爲了我的理解, SoundArray也是Simulink上下文中的一個變量?即它在Simulink執行期間是否改變?如果沒有,我認爲參數解決方案的作品。否則,我懷疑數據存儲是要走的路,但它必須首先被初始化。 – ErikP
SoundArray [n 2]矩陣/變量在Simulink中定義(如上所示),但是用自定義C代碼中的pread()進行初始化。我確實想要改變SoundArray的能力。這一切都將在Linux上運行,這會引發我可以使用的塊和數據類型的問題。我從來沒有使用數據存儲,更不用說從自定義代碼初始化一個。 – willworknow