放射状に品質の数値評価を表す matlab を使用してプロットを作成したいと思います。
私が見つけた最良の方法は、正しく機能していないようです。次のコードを実行します。
theta = (0 : (360/11) : 360)*pi/180;
r = 0 : 2 : 20 ;
[TH,R] = meshgrid(theta,r);
[X,Y] = pol2cart(TH,R);
Z = meshgrid(Data);
surf(X,Y,Z);
Data
は、11 個の数値を含むデータのベクトルです。データセットの例は次のとおりです。
Data = 0.884, 0.882, 0.879, 0.880, 0.8776, 0.871, 0.8587, 0.829, 0.811, 0.803, 0.780
surf
ここの出力は次のとおりです。
このタイプの画像のより洗練されたバージョンを作成したいと思います。
次のコードで生成しました。
for theta = 0 : pi/100 : pi;
v = [InterpolatedImageHeight;LengthVector];
x_center = InterpolatedImageHeight((HorizontalRes+1)/2);
y_center = 0; %InterpolatedImageHeight((HorizontalRes+1)/2);
center = repmat([x_center; y_center], 1, length(InterpolatedImageHeight));
R = [cos(theta) -sin(theta); sin(theta) cos(theta)];
vo = R*(v - center) + center;
x_rotated = vo(1,:);
y_rotated = vo(2,:);
scatter(x_rotated,y_rotated,DotSize,InterpolatedData,'filled'); %x,y,area,color,properties
end
これに関する問題は、私が本質的に使用している散布図でありplot(r,Data)
、多くのコピーをプロットし、ドットサイズを大きくしていることです。グラフィック自体には多くの継ぎ目があり、これには膨大な量のメモリが必要であり、非常に高速に実行され、最小限のメモリしかsurf
必要としない場所では時間がかかります。mesh
色の可変入力を使用して同心円を作成するにはどうすればよいですか?