Matlab三维表面正态分布

时间:2014-11-03 03:00:38

标签: matlab graph plot 3d surface

我有两个正态分布,我正在尝试从它们制作体积曲面。我得到了下面的图表

enter image description here

clear; clc;

nsamp = 100000;

%

% Basic variables

%

m1=2.724;

dp1=0.375;

R = normrnd(m1,dp1, nsamp, 1);

m2=1.345;

dp2=0.135;

S = normrnd(m2,dp2, nsamp, 1);

%

Z = R - S;


    I = (Z < 0);

pf = sum(I)/nsamp

beta = -norminv(pf)

%

% Histograms

hist(S,20)

hold on

hist(R,40)

set(findobj('Type','patch'),'Facecolor','none','Edgecolor','black')

set(gca,'Fontsize',18,'Fontname','euclid')

xlabel('R & S')


figure

scatterhist(R,S)

xlabel('R'),ylabel('S')

我想制作一个3D表面,红色点保持红色,蓝色点保持蓝色。有人能帮我吗?此致

1 个答案:

答案 0 :(得分:0)

我现在无法编写经过测试的解决方案 - 无法访问Matlab许可证服务器。但是你有两个问题。

首先是创建密度的曲面图。你可以使用hist3函数 - 如果你返回垃圾箱的值,你可以自己控制阴谋:

[N C] = histc(X)

(对不起,我不清楚你真正想要绘制的内容 - 是RSZ还是R+S?这就是我使用X)的原因。

然后为图表上色,您可以使用色块着色 - 请参阅http://www.mathworks.com/help/matlab/visualize/specifying-patch-coloring.html了解如何操作。

这两者的结合应该会让你走得很远......但是你还不清楚你真正想要做什么。我希望这些提示可以帮助你。