正如标题所说,我正在尝试将网格函数的 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;
printFig() 只是设置目录信息并执行print
命令。
我的代码设置了两个子图,然后覆盖了网格图的完整 3-d 视图,这不是我想要的。我想在一个图形上看到两个视图(XZ 和 YZ)。
谢谢您的帮助!
-迪伦
编辑:根据@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 图。