在Matlab中我有一个函数调用一组参数。我有3套,我可以单独调用它们并绘制它们。没有问题。但我希望能够在一个单一的情节中对它们进行比较。含义:有没有办法,我把所有三个图都放到一个图中?
函数[GE,SI,RES,T] = glusim(参数,数据) [...] 如果我调用glusim(1,Data),我会使用一组参数,并得到一个图。 如果我调用glusim(2,Data),我会使用另一组参数并得到一个图。 如果我调用glusim(3,Data),我会使用第三组参数并得到一个图。 我想比较所有三合一图。
我该怎么做?
答案 0 :(得分:1)
命令hold on
允许您在现有轴上绘图而不删除已经绘制的内容。
或者,您可以使用行为相似的hold all
但确保其他绘图命令将循环通过预定义的颜色列表(除非您将其覆盖)。
如此快速举例说明:
figure; % Create new figure window
hold on; % Retain graph when adding new ones
plot(Data1);
plot(Data2);
plot(Data3);
稍微复杂一点的答案是,您还需要确保所有绘图命令都绘制到相同的图形。当你调用plot
命令时,它会绘制到被认为是“当前数字”的任何数字。对此的解释有点高级,涉及存储和调用图形句柄,但我在下面提供了更详细的示例。
为了更好地控制当前数字的数字,您可以按如下方式修改上述代码:
h = figure; % Create new figure window, assign figure handle to h
plot(Data1);
% ... Do things other than plotting
figure(h); % When ready to plot, set figure "h" to be the current figure
hold on; % Apply hold to ensure you won't erase previous plots
plot(Data2);
因此,要回答原始问题,如果在函数内部进行绘图,则需要确保该函数可以访问要绘制的图形的句柄。