matlabでガウス分布の等高線図を作成するにはどうすればよいですか?
user31820
質問する
13157 次
2 に答える
3
対称シグマと中心が (0,0) の単純なケース:
sigma = 5; % just an example value
n = 3*sigma; % cutoff point
x = -n:n;
G = 1 / (sigma * sqrt(2 * pi)) * exp(-x.^2 / (2*sigma^2)); % 1D Gaussian
G2 = G' * G; % 2D
contour(G2); % make contour plot
または、一般的なケースでは、中心がどこにでもあり、シグマ x とシグマ y が異なり、回転シータが次のようになります。
center = [1 3]; % again, example values
sigma = [4 2];
theta = pi/3;
R = max(sigma(:))*4;
[xgrid, ygrid] = meshgrid( center(1)-R: center(1)+R,...
center(2)-R: center(2)+R);
x = (((xgrid-center(1))*cos(theta) - (ygrid-center(2))*sin(theta))/sigma(1)).^2;
y = (((xgrid-center(1))*sin(theta) - (ygrid-center(2))*cos(theta))/sigma(2)).^2;
G = exp(-(x+y)/2);
contour( xgrid, ygrid, G)
于 2012-05-24T15:18:09.033 に答える
1
オンライン ドキュメントには、必要なものがすべて含まれています。「関数の等高線グラフ」のセクションを確認してください。
サンプルコードと、等高線にラベルを付けたり、滑らかにしたりするためのあらゆる種類の方法があります.
于 2012-05-24T15:20:15.440 に答える