2013-05-16 58 views
1

使用Matlab,我創建了一個圖形用戶界面,其中包含屏幕上的100個圓圈。我已經將每個註釋的句柄存儲在一個名爲神經元的向量中。在每次迭代中,我都希望將每個圓圈移動一定的量。這些位移存儲在稱爲位移的矩陣中,其中第i行給出第i個神經元的位移矢量。我使用for循環中的get/set命令更新每個圓的位置。Matlab:用於註釋變量的矢量化更新

for i=1:length(neurons) 
     neuronPos=get(neurons(i),'Position'); 
     neuronPos=neuronPos+displacement(i,:); 
     set(neurons(i),'Position',neuronPos); 
    end; 

上面的代碼工作得很好。但如果可能,我想知道如何矢量化此操作。我知道使用get命令,我可以獲得所有圈子的位置矩陣(它實際上返回一個單元格,但可以使用cell2mat輕鬆轉換)。

get(neurons,'Position'); 

但我找不出一種方法來使用set命令來同時更新所有圓的位置。任何幫助,將不勝感激。

回答

1

你應該在{}neuronPos封閉屬性應該是一列單元陣列,在每個單元的位置:

set(neurons, {'position'}, neuronPos) 
+0

感謝,這正是我一直在尋找 – LiberatedDreamer