Matlab:注释变量的矢量化更新

Matlab:注释变量的矢量化更新,matlab,annotations,vectorization,Matlab,Annotations,Vectorization,使用Matlab,我创建了一个图形用户界面,屏幕上有100个圆圈。我将每个注释的句柄存储在一个称为神经元的向量中。在每次迭代中,我都希望将每个圆移动一定量。这些位移存储在称为位移的矩阵中,其中第i行给出第i个神经元的位移向量。我使用for循环中的get/set命令更新每个圆的位置 for i=1:length(neurons) neuronPos=get(neurons(i),'Position'); neuronPos=neuronPos+displac

使用Matlab,我创建了一个图形用户界面,屏幕上有100个圆圈。我将每个注释的句柄存储在一个称为神经元的向量中。在每次迭代中,我都希望将每个圆移动一定量。这些位移存储在称为位移的矩阵中,其中第i行给出第i个神经元的位移向量。我使用for循环中的get/set命令更新每个圆的位置

    for i=1:length(neurons)
        neuronPos=get(neurons(i),'Position');
        neuronPos=neuronPos+displacement(i,:);
        set(neurons(i),'Position',neuronPos);
    end;
上面的代码工作得很好。但如果可能的话,我想知道如何将这个操作矢量化。我知道使用get命令,我可以获得所有圆的位置矩阵(它实际上返回一个单元格,但可以使用cell2mat轻松转换)


但是我想不出一种方法来使用set命令同时更新所有圆的位置。任何帮助都将不胜感激。

您应该将属性包含在
{}
中,
neuronPos
应该是一个列单元格数组,每个单元格中都有位置:

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

您应该将属性括在
{}
中,
neuronPos
应该是一个列单元格数组,每个单元格中都有位置:

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

谢谢,这正是我要找的汉克斯,这正是我要找的