您的位置:

Matlab中hold on使用详解

一、 hold on的基础用法

hold on是matlab中的一个常用命令,其作用是保留当前图形并在其上添加后续绘制的内容。当使用hold on之后,绘图函数不会清空当前图形的内容,而是在当前图形的基础上添加新的图形。

下面是一个简单的示例代码:

% 设置x轴范围
x = -pi:0.1:pi;
% 绘制sin(x)图像
plot(x,sin(x))
% 开启hold on功能
hold on
% 绘制cos(x)图像
plot(x,cos(x))

运行上述示例代码,即可得到一个同时包含sin(x)和cos(x)图像的坐标系。其中,通过hold on命令使得在当前图形对象上绘制了cos(x)的图像。

二、hold on的多次使用方式

在matlab中,可以使用hold on命令多次,每次使用都会在当前图形的基础上添加新的图形。

下面是一个hold on多次使用的示例代码:

% 生成数据
x = -pi:0.1:pi;
y1 = sin(x);
y2 = cos(x);
y3 = tan(x);
% 绘制y1图像
plot(x,y1,'r')
% 开启hold on功能
hold on
% 绘制y2图像
plot(x,y2,'g')
% 继续开启hold on功能
hold on
% 绘制y3图像
plot(x,y3,'b')

运行上述示例代码,即可得到一个包含三个图像的坐标系。其中,使用hold on命令保留了前两个已经绘制的图像,然后在其基础上添加了第三个图像。

三、hold on和hold off联用

除了使用hold on命令来保留当前图形,还可以使用hold off命令来关闭保留功能。当使用hold off命令之后,下一次绘制的图像会覆盖当前图形的内容。

下面是一个hold on和hold off联用的示例代码:

% 生成数据
x = -pi:0.1:pi;
y1 = sin(x);
y2 = cos(x);
% 绘制y1图像
plot(x,y1,'r')
% 开启hold on功能
hold on
% 绘制y2图像
plot(x,y2,'g')
% 关闭hold on功能
hold off
% 绘制y1图像
plot(x,y1,'b')

运行上述示例代码,即可得到一个包含两个图像的坐标系。其中,使用hold on命令保留了前两个已经绘制的图像,然后在其基础上添加了第三个图像,最后使用hold off命令关闭了保留功能,并覆盖了前两个图像。

四、hold on使用时的注意事项

1. hold on只对当前图象有效

使用hold on命令只对当前图象有效,当创建新的图象时,hold on状态将被取消。当需要多个图象之间同时使用hold on功能时,需要使用subplot命令将所有图象添加到同一个大的图象中。

2. 可以使用hold all代替hold on

使用hold all也可以达到和hold on相同的效果,即保留当前图形并在其上添加后续绘制的内容。

3. 可以通过legend来标记图形

当在同一坐标系中绘制多个图形时,可以使用legend命令来标记每一个图形的含义。

下面是一个使用legend标记多个图形的示例代码:

% 生成数据
x = -pi:0.1:pi;
y1 = sin(x);
y2 = cos(x);
% 绘制y1图像
plot(x,y1,'r')
% 开启hold on功能
hold on
% 绘制y2图像
plot(x,y2,'g')
% 添加图像标签
legend('sin(x)','cos(x)')

运行上述示例代码,即可得到一个包含两个图像并标记了含义的坐标系。