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

조회 수: 7 (최근 30일)
ZONZON
ZONZON 2016년 11월 6일
댓글: michio 2016년 11월 10일
こんにちは。
以下のコードについて質問があります。
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を記録する方法はないでしょうか。 回答をよろしくお願いします。

채택된 답변

michio
michio 2016년 11월 6일
幾つか確認させてください。
  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);
  댓글 수: 8
ZONZON
ZONZON 2016년 11월 10일
回答ありがとうございます。
上記を実行したところ、無事にallbcを記録できました。
ありがとうございました。
michio
michio 2016년 11월 10일
問題の把握に手間取りごめんなさい。ご希望どおりで良かったです。
またわからない点がありましたらご質問ください!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by