2016-08-14 8 views
0

以前にすでに決定された重心として複数の円をプロットしたいと思います。複数の円をプロットする

円の中心としてセントロイドを使用するこのコードはありますが、エラーが発生します。「使用しているエラーと行列の次元が一致している必要があります」

r = 4; 
cen_x = centroid(:,1); 
cen_y = centroid(:,2); 
th = 0:pi/50:2*pi; 
xunit = r * cos(th) + cen_x; 
yunit = r * sin(th) + cen_y; 
hold on 
h = plot(xunit, yunit); 

ヘルプがありますか?

答えて

0

cos(th)cen_xを一緒に追加しようとしていて、そのサイズが一致しません。寸法が適切に放送されるように、bsxfunを使用する必要があります。

xunit = bsxfun(@plus, cen_x, r * cos(th)).'; 
yunit = bsxfun(@plus, cen_y, r * sin(th)).'; 

plot(xunit, yunit) 

また、rectangleを使用してサークルを描画することもできます。また、FaceColorと指定して入力することもできます。

positions = [centroid - (r/2), r + zeros(size(centroid))]; 

for k = 1:size(positions, 1) 
    rectangle('Position', positions(k,:), 'Curvature', [1 1], 'FaceColor', 'r'); 
end 
+0

よくできています。これらの円を埋めるために 'imfill'関数を使うことができるかどうか不思議です。 – Idrawthings

+0

ありがとうございました! – Idrawthings