正如标题所示,我试图将网格函数的 2 变量切片(例如,作为 .jpg)保存为子图。我想使用 .m 文件来执行此操作,因为我有很多要生成的图。我已经弄清楚如何在他们自己的图形上绘制视图,但我无法让它们正确地绘制为图形中的子图。为了说明我的意思:
以下是各个图的输出:
3D 网格:3D MATLAB 网格图 http://i39.tinypic.com/xnra76.jpg
XY 视图:XY MATLAB 网格视图 http://i39.tinypic.com/25ktrhy.jpg
YZ视图:YZ MATLAB 网格视图 http://i39.tinypic.com/hvuuio.jpg
XZ视图:XZ MATLAB 网格视图 http://i41.tinypic.com/14ttv9c.jpg
这是我的绘图代码(不起作用):
%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;
printFig() 只是设置目录信息并执行print
命令。
我的代码设置了两个子图,然后覆盖网格图的完整 3D 视图,这不是我想要的。我想在一个图形上看到两个视图(XZ 和 YZ)。
谢谢您的帮助!
-Dylan
编辑:
根据@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);
对于其他子图重复此操作。然而结果还是一样。它似乎正确设置了两个空白子图,然后在其上显示完整的伪 3D 图。