从每个循环周期收集循环结果

时间:2013-04-22 04:38:41

标签: matlab

我目前正在编写代码,以便为每个视频帧收集while循环内的质心坐标的平均值。 对于每个循环周期,每个单帧的输出只有一个平均值。我的目标是收集所有平均值并绘制出来。

for object = 1:length(centroid);

        centX = centroid(1,object); 
        centY = centroid(2,object);    
        vidIn = step(htextinsCent, vidIn, [centY centX], [centY-6 centX-9]); %this line is for coordinate display purpose on each frame

end   

for object =   length(centroid)>0;   

        columncentroid=centroid';
        average=mean(columncentroid);
end

我很难在代码运行结束时列出所有帧中的所有平均值。在每个循环之后,较早的平均值将被最新值替换。 请建议我采取适当的步骤。先谢谢你。

2 个答案:

答案 0 :(得分:0)

似乎你已经有一个2xN的质心值数组;你所要做的就是展示它们。如果你想得到所有值的平均值,你可以

average = mean(centroid');

这取第一维的平均值 - 转置后的是第一列中的所有X值和第二列中的Y值。此操作后average应为2元素行向量。

display(average);

会告诉你这些值是什么。

似乎这就是你想要的,你做的一切都是正确的(除了那个莫名其妙的循环......)。如果这不是您所需要的,请在您的问题中更清楚地解释!

答案 1 :(得分:0)

要保留所有平均值,您可以写:

average = []; %init average as empty
for object = length(centroid):-1:1;   

    columncentroid=centroid';
    average= [average mean(columncentroid(:,object))]; %add new average to the end of average array
end