hold_was_on = ishold??

在matlab里面画图的时候,有两种模式:
(1)增加模式:保持现有的图,继续画;可以使用hold on命令,进入这种模式;
(2)替换模式:清空现有的图,重新画;可以使用hold off命令,进入这种模式。
如果是hold on状态,你先画一条横线,再画一条竖线,那么最终的结果是一横一竖两条线(横线之后增加了竖线);如果是hold off状态,你先画一条横线,再画一条竖线,那么最终的结果是一条竖线(竖线替换了横线)。
line(corners(1,:), corners(2,:), varargin{:}); %line([X1 X2 X3...],[Y1 Y2 Y3...],S); %点A(X1,Y1)和点B(X2 Y2)之间,(X2,Y2)和(X3 Y3)之间画一条直线...S为其它属性 
% patch(corners(1,:), corners(2,:), 'y', ...
%       'FaceAlpha',0, 'LineWidth',1.5, varargin{:});

center = mean(corners(:,1:4),2); %取四个顶点x坐标和y坐标各自的平均值作为center的坐标
hold_was_on = ishold; <pre id="best-content-1465705295" class="best-text mb-10" style="min-height: 55px;"><span style="font-size:18px;"></span><pre name="code" class="plain">%在画图之前,检测并记住hold状态,保存在变量hold_was_on之中。其中ishold是一个内置函数,可以返回当前的hold状态。
hold on; plot(center(1),center(2),varargin{:}); %画出中心点if (~hold_was_on) hold off; end %在画图之后,根据之前记录的结果,恢复之前的hold状态。
 

在新的plot之前,使用hold on;命令,意思是在原有的图上继续画。但是这样做,太 简单粗暴了,改变了画图的方式。如果有一天,你的同事或者同学拿到了你的代码,并且要进行修改。在没有细看的情况下,他把你这段代码插入到一段需要保持hold off状态的代码之中,就难免会发生错误。因此,最好能够在画图时,保持hold状态。因此,在画图之前,检测并记住hold状态,保存在变量hold_was_on之中。hold_was_on = ishold;其中ishold是一个内置函数,可以返回当前的hold状态。在画图之后,根据之前记录的结果,恢复之前的hold状态。if (~hold_was_on) hold off; end

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值