⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slowset.m

📁 matlab宝典,电子工业出版社,包含该书的源码9-11章
💻 M
字号:
function slowset(handle, prop, value, increment)% SLOWSET(H, 'PROPERTY', VALUE)%% Like SET, except that the property is set against the original% value over several steps such that the value morphs from the% starting value to the end value.%% H can be a vector of handles, but they must all accept PROPERTY.%% Only one property is supported at this time.%% Optional fourth argument INCREMENT specifies how many steps of% animation to use.  % Copyright 2000, 2001, 2002, 2003, 2004, 2005 The MathWorks Inc  global INCREMENT;    if nargin == 4    INCREMENT = increment;    if INCREMENT==0      INCREMENT=1;    end  else    INCREMENT=10;  end  %  nargchk(3,3,'wrong number of arguments.');    proplist=fieldnames(get(handle(1)));  tprop={ proplist{strncmpi(prop,proplist,length(prop))} };  prop=tprop{1};    hp = [];    for i = 1:length(handle)    hp(i).handle = handle(i);    hp(i).start = get(hp(i).handle,prop);    hp(i).end = value;    if isnumeric(hp(i).end) && isnumeric(hp(i).start)      hp(i).values = VectorCalc(hp(i));    else      set(hp(i).handle,prop,value);      hp(i).values = [];    end  end    for inc = 1:INCREMENT    for i = 1:length(handle)      if ~isempty(hp(i).values)        newval = reshape(hp(i).values(inc,:,:,:),...                         size(hp(i).start,1),...                         size(hp(i).start,2));                set(hp(i).handle,prop,newval);      end    end    pause(.05)  end  function values =  VectorCalc(hp)% Do nothing but go to end value.  global INCREMENT;    s = prod(size(hp.end));    values = ones(INCREMENT,size(hp.end,1), size(hp.end,2),size(hp.end,3));    for c = 1:s    newval = linspace(hp.start(c),hp.end(c),INCREMENT);    values(:,c) = newval';  end    values = reshape(values, INCREMENT, size(hp.end,1), size(hp.end,2), ...                   size(hp.end,3));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -