我會跳到問題,然後再一些輔助資料:如何在Matlab中矢量化訪問子結構?
假設我有以下幾點:
motor(1).Voltage = 96.2;
motor(2).Voltage = 48.0;
processingStation(1).FeedstockMotor.Voltage = 96.2;
processingStation(2).FeedstockMotor.Voltage = 48.0;
下面給出了所有電機電壓:
[motor.Voltage]
這不給出所有電機電壓:
[processingStation.FeedstockMotor.Voltage]
第一個輸出[motor.Voltage]
給出了結構中所有電機的電壓。在另一種情況下,我如何獲得相同的功能,我試圖在所有processingStation
s之間比較FeedstockMotor
的Voltage
值?
我意識到,我可以重命名字段FeedstockMotor_Voltage
並獲得相同的功能,但如果放電機具有類似配置的集合,那麼我可以輕鬆地設置一個默認的馬達,有這樣的:
defaultMotor.Voltage = 48.0;
defaultMotor.Torque = 100;
等等,然後我可以做簡單的任務:
processingStation(1).FeedstockMotor = defaultMotor;
我想有允許電動機的一個非常小的子集,能夠爲這些馬達設置非常詳細的配置,然後能使用它們。
我還希望能夠切分各個部分,以便我可以快速獲得用於視覺趨勢或其他HMI顯示的操作扭矩,電壓等的列表。我寧願不必遍歷所有的processingStation
元素來獲取我需要的數據。
正如下面的第一個答案顯示,檢查出這些想法:http://stackoverflow.com/questions/7878534/vectorization-of-multi-level-indexing-of-structs-in-matlab – 2017-02-16 03:20:46
謝謝@Jon。我查看了你發佈的問題的答案,並決定有一個[可讀的雙線](http://stackoverflow.com/questions/42261541/how-can-i-vectorize-access-to-substructures-in- matlab?noredirect = 1#comment71707455_42261575)比像'squeeze(cell2mat(...))'這樣的一個簡單的單線程更值得我。 – Chuck