1

matlabでガウス分布の等高線図を作成するにはどうすればよいですか?

4

2 に答える 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 に答える