MATLAB: リアルタイムに変化す​る変数への代入値を記​録する方法

for loopImage Processing Toolboxincrement日本語

こんにちは。
以下のコードについて質問があります。
for object = 1:length(stats)
bb = stats(object).BoundingBox;
bc = stats(object).Centroid;
plot(bc(1),bc(2), '-m+')
a=text(bc(1)+15,bc(2), strcat('X: ', num2str(round(bc(1))), ' Y: ', num2str(round(bc(2)))));
set(a, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 14, 'Color', 'white');
end
ある条件下ではこのfor文が実行され、このfor文中の変数bcはリアルタイムに変化します。 この変化するbcの数値をすべて記録したいのですが、よい記述方法が思いつきません。 インクリメントのobjectは、必ずしも1ずつ増加するという動作を実行しておらず、 そのことが処理を難しくしています。
なんとかこのbcを記録する方法はないでしょうか。 回答をよろしくお願いします。

Best Answer

幾つか確認させてください。
  1. stats は イメージ領域のプロパティの計測を行う regionprops 関数の出力でしょうか。
  2. 「for文中の変数bcはリアルタイムに変化」とは、 for ループが進行する毎に bc が変化するという意味でしょうか。
  3. 「インクリメントのobjectは、必ずしも1ずつ増加するという動作を実行しておらず」とのことですが、for object = 1:length(stats) という for ループのなかでは、 object は 1ずつ増加します。何か他のことに触れていらっしゃいますでしょうか?
例えば、すべての object bc の値を確保するだけですと、下記の実行でも可能となります。
N = length(stats);
bc = zeros(2,N);
for object = 1:length(stats)
bc(:,object) = stats(object).Centroid;
end
allbc = vertcat(stats.Centroid);