使用此代码:
x=linspace(-3,3,25);
y=x';
[X,Y]=meshgrid(x,y);
z=exp(-(X.^2+Y.^2)/2);
h=surf(x,y,z);shading interp
%colormap(col4);
set(h,'LineStyle', '-','LineWidth',0.001,'EdgeColor','k');
set(gca, 'YTick',[],'XTick',[],'ZTick',[]);
box on
我现在想要绘制
1)其中2个在同一轴内并排
2)其中4个在同一轴内的两行,两行
所以基本上我想要一个带有多个高斯的单个3d图。如果这是有意义的,而不是单个高斯人的多个情节
......我知道这可能相当简单,但我很难过。任何帮助非常感谢。
这是经过编辑,以澄清我想在同一个地块上不止一个,而不是多个子情节
答案 0 :(得分:2)
诀窍就是使用X
复制您的Y
和repmat
矩阵:
x=linspace(-3,3,25);
y=x';
[X,Y]=meshgrid(x,y);
X = repmat(X, 2, 2);
Y = repmat(Y, 2, 2);
z=exp(-(X.^2+Y.^2)/2);
% note I'm using a different X and Y now in the call to surf()
h=surf(1:size(z,1),1:size(z,2),z);
shading interp
%colormap(col4);
set(h,'LineStyle', '-','LineWidth',0.001,'EdgeColor','k');
set(gca, 'YTick',[],'XTick',[],'ZTick',[]);
box on
对于同一表面中的两个高斯,使用X = repmat(X, 2, 1)
,或更多,repmat(X, n, k)
等。
答案 1 :(得分:1)
从matlab文档中,一个子图示例看起来正如@Ander所建议的那样:
x = 0:0.1:10;
y1 = sin(2*x);
y2 = cos(2*x);
figure
subplot(2,2,1) % add first plot in 2 x 2 grid
plot(x,y1) % line plot
title('Subplot 1')
subplot(2,2,2) % add second plot in 2 x 2 grid
scatter(x,y2) % scatter plot
title('Subplot 2')
subplot(2,2,3) % add third plot in 2 x 2 grid
stem(x,y1) % stem plot
title('Subplot 3')
subplot(2,2,4) % add fourth plot in 2 x 2 grid
yyaxis left % plot against left y-axis
plot(x,y1)
yyaxis right % plot against right y-axis
plot(x,y2)
title('Subplot 4')
结果是: