Mercurial > hg > ltpda
view m-toolbox/m/gui/ltpdv/callbacks/ltpdv_calc_btn.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line source
function ltpdv_calc_btn(varargin) % LTPDV_CALC_BTN called when one of the calculator buttons is pushed. % % M Hewitson 22-04-08 % % $Id: ltpdv_calc_btn.m,v 1.1 2008/05/11 10:38:43 hewitson Exp $ % % Handles myh = varargin{1}; mainfig = varargin{end-1}; nins = varargin{end}; % Get operation op = get(myh, 'String'); % Get selected objects objs = ltpdv_get_selected_objs(mainfig); Nobjs = length(objs); if Nobjs < nins error('### Please select two objects'); end % check objects are all AOs for j=1:Nobjs if ~isa(objs{j}, 'ao') error('### Please select only AOs for math calculations'); end end % Loop over AOs n = 1; res = {}; while n <= length(objs) % operate on two objects switch nins case 1 res = [res {feval(op, objs{n})}]; case 2 if isempty(res) res = feval(op, objs{n}, objs{n+1}); n = n + 1; else res = feval(op, res, objs{n}); end end n = n + 1; end if nins == 2 res = {res}; end % Add this result to the object list objs = getappdata(mainfig, 'LTPDAobjects'); if ~isempty(res) setappdata(mainfig, 'LTPDAobjects', [objs res]); % Refresh object list ltpdv_refresh_object_list(mainfig); end % END