MATLAB で接続点をプロットしたいと思います。
私の接続されたポイントは、 「stats」の接続オブジェクトから取得されます。各「stat」はBW regionprops構造体から取得されます。
私が書いたコードは機能しますが、多くの「醜さ」に悩まされており、さまざまな方法を試しても修正できませんでした。
function plot_line( line )
a = cell2mat(line);
b = {a.Centroid};
matx = {};
maty = {};
for i = 1:size(b,2)
matx{end+1} = b{i}(1);
maty{end+1} = b{i}(2);
end
plot ( cell2mat(matx), cell2mat(maty) );
end
このコードをより良くするのを手伝ってくれませんか? 私のコードは正常に動作し、行が短い (<100 ポイント) ため、パフォーマンスは問題にならないため、重要ではありません。
for ループと cell2mat の 3 回の呼び出しを行わずに、この小さな関数を適切な方法で記述する方法を知っておくと本当に便利です。
私の例では:
- 行は
<1xn cell>
、 line{1}
プロパティ'Centroid'
を持ち、line{i}.Centroid(1)
は x 座標、line{i}.Centroid(2)
y座標です。
line{i}.Centroid(1)
実際、必要なのは, line{i}.Centroid(2)
for をプロットするi = 1:size(line,2)
ことだけですが、方法がわかりません。