fval.m

来自「这是一个很适合研究和学习用的电力系统仿真软件」· M 代码 · 共 61 行

M
61
字号
function val_out = fval(co,val_in,gtzero)
% FVAL sets parameters in graphical user interfaces
%
% OUT = FVAL(HDL,IN [,GTZERO])
%     HDL    object handle
%     IN     input value
%     GTZERO check if output value > 0
%            ( == 0 to disable,  default == 1)
%     OUT    output value
%
%Author:    Federico Milano
%Date:      11-Nov-2002
%Update:    22-Aug-2003
%Version:   1.1.0
%
%E-mail:    fmilano@thunderbox.uwaterloo.ca
%Web-site:  http://thunderbox.uwaterloo.ca/~fmilano
%
% Copyright (C) 2002-2006 Federico Milano

if nargin == 2
  gtzero = 1;
end

stringa = get(co,'String');
callback = get(co,'Callback');
a = findstr(callback,' =');
if a,
  nome = ['"',callback(1:a(1)-1),'" '];
end

try
  val_out = eval(stringa);
catch
  val_out = val_in;
  fm_disp(lasterr,2);
  return
end
[a0, b0] = size(val_out);
if isempty(val_out)
  fm_disp(['Input variable or function "',stringa,'" is empty.'], 2)
  val_out = val_in;
  set(co,'String',num2str(val_in))
elseif (a0 > 1 | b0 > 1)
  if a,
    fm_disp(['Parameter ', nome,'has to be scalar.'], 2),
  end
  val_out = val_in;
  set(co,'String',num2str(val_in))
else
  if gtzero & val_out < 0
    stringa = '0';
    fm_disp(['Parameter ',nome,'cannot be negative.']),
    set(co,'String','0')
    val_out = 0;
  end
  if a,
    fm_disp(['Parameter ',nome,'set to "', stringa,'".']),
  end
end

⌨️ 快捷键说明

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