Dyl*_*lan 0 3d matlab plot mesh subplot
正如标题所说,我正在尝试将网格函数的2变量切片(例如.jpg)保存为子图.我想使用.m文件执行此操作,因为我有许多图表要生成.我已经弄清楚如何在他们自己的数字上绘制视图,但我不能让他们正确地绘制成图中的子图.说明我的意思:
以下是各个图的输出:
3D网格:3D MATLAB网格图
XY视图:XY MATLAB网格视图
YZ视图:YZ MATLAB网格视图
XZ视图:XZ MATLAB网格视图
这是我的绘图代码(不工作):
%Ambiguity Surface
fid = figure(fnum);
axes1 = axes('Parent',fid);
view(axes1,[-62.5 28]);
grid(axes1,'on');
hold(axes1,'all');
msh = mesh(taux,fdy,z,'Parent',axes1);
xlabel ('Delay - seconds');
ylabel ('Doppler - Hz');
zlabel ('Ambiguity function (Normalized Magnitude-Squared)');
fname = strcat(name,' (Ambiguity Function z(\tau;F_d))');
title(fname);
cb = colorbar('peer',axes1);
set(get(cb,'ylabel'),'String','Magnitude-Squared (dB)');
hold off;
printFig(fid,fnum,sname)
fnum = fnum + 1;
%Ambiguity Slices
fid = figure(fnum);
hold all;
subplot(2,1,1);
axes1 = axes();
grid(axes1,'on');
view(axes1,[90 0]);
msh = mesh(taux,fdy,z);
xlabel ('Delay - seconds','Visible','off');
ylabel ('Doppler - Hz');
zlabel ('Ambiguity function (Normalized Magnitude-Squared)','Visible','off');
fname = strcat(name,' (Ambiguity Function Slice z(\tau;F_d) @ \tau = 128)');
title(fname)
subplot(2,1,2);
axes2 = axes();
grid(axes2,'on');
view(axes2,[0 0]);
msh = mesh(taux,fdy,z);
xlabel ('Delay - seconds','Visible','off');
ylabel ('Doppler - Hz','Visible','off');
zlabel ('Ambiguity function (Normalized Magnitude-Squared)','Visible','off');
cb = colorbar('peer',axes2);
set(get(cb,'ylabel'),'String','Magnitude-Squared');
fname = strcat(name,' (Ambiguity Function Slice z(\tau;F_d) @ F_d = 0)');
title(fname)
hold off;
printFig(fid,fnum,slname)
fnum = fnum+1;
Run Code Online (Sandbox Code Playgroud)
printFig()只是设置目录信息并执行print命令.
我的代码设置了两个子图,然后覆盖了网格图的完整三维视图,这不是我想要的.我想在一个数字上看到两个视图(XZ和YZ).
谢谢您的帮助!
-Dylan
编辑:Per @ Andrew_L的建议,我在我的代码中修改了这个:
sp1 = subplot(2,1,1);
axes(sp1);
axes1 = axes();
grid(axes1,'on');
view(axes1,[90 0]);
msh = mesh(taux,fdy,z,'Parent',axes1);
Run Code Online (Sandbox Code Playgroud)
对于另一个子图重复这一过程.但结果仍然相同.它似乎正确设置了两个空白子图,然后在其上显示完整的伪3D图.
这是一个剥离的示例,非常类似于您要实现的目标:
%# create axes, and set the view of each
hAx(1) = subplot(221); h = mesh(peaks); view(3)
hAx(2) = subplot(222); copyobj(h,hAx(2)); view(0,90), title('X-Y')
hAx(3) = subplot(223); copyobj(h,hAx(3)); view(0,0) , title('X-Z')
hAx(4) = subplot(224); copyobj(h,hAx(4)); view(90,0), title('Y-Z')
%# set properties of axes
for i=1:4
grid(hAx(i), 'on')
axis(hAx(i), 'tight')
xlabel(hAx(i), 'Delay (sec)');
ylabel(hAx(i), 'Doppler (Hz)');
zlabel(hAx(i), 'Ambiguity function');
end
title(hAx(1), 'Short Tone Ping z(\tau;F_d)')
hc = colorbar('Peer',hAx(1));
set(get(hc,'YLabel'), 'String','Magnitude-Squared (dB)')
Run Code Online (Sandbox Code Playgroud)
