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

📄 lddlgpls.m

📁 PLS_Toolbox是用于故障检测与诊断方面的matlab工具箱
💻 M
字号:
function lddlgpls(callhand,callhand2,klass,message,action)
%LDDLPLS load variable from workspace dialog.
%  Input (callhand) is a handle of an object 
%  in a gui to set the passed workspace
%  variable to as userdata.
%  Input (callhand2) is a handle of an object
%  in a gui to set the passed workspace
%  variable name to as userdata.
%  The optional variable (klass) allows the
%  user to select the workspace variable of
%  class 'klass' to load.
%  klass = 'double', 'cell', 'char', or 'struct'.
%
%I/O: lddlgpls(callhand,callhand2,klass,message);

%Copyright Eigenvector Research, Inc. 1997-2000
%nbg 4/97,6/97,3/99,11/99

if nargin<5
  if nargin<4
    message = [];
  end
  if nargin<3
    klass = 'double';   %set default class
  end
  if nargin<2
    callhand2 = [];
  end
  evalin('base','assignin(''caller'',''s'',whos)')
  if isempty(s)
    s1    = 'Error on Load!';
    erdlgpls('No variables in workspace',s1)
  else
    s2    = char({s.class});
    switch klass
    case 'double'
      jj  = find(s2(:,1)=='d');
      s3  = {s.size};
      s3  = s3(jj);
    case 'struct'
      jj  = find(s2(:,1)=='s');
    case 'char'
      jj  = find(s2(:,2)=='h');
      s3  = {s.size};
      s3  = s3(jj);
    case 'cell'
      jj  = find(s2(:,2)=='e');
    otherwise
      s3  = [klass,' not a valid class'];
      erdlgpls(s3,'Error on Load!')
      error
    end
    s     = char({s.name});
    s     = s(jj,:);
    if isempty(s)
      s   = 'Error on Load!';
      if klass
        s2 = ['No ',klass,' in workspace'];
        erdlgpls(s2,s)
      else
        erdlgpls('No data in workspace',s)
      end
    else
      bgc0 = [1 1 1];
      fsiz = 10;
      switch lower(computer)
      case 'pcwin'
        fnam = 'arial';
      case 'mac2'
        fnam = 'geneva';
      otherwise
        fnam = 'geneva';
      end
      fwt  = 'bold';
      units0   = get(0,'Units');
      set(0,'Units','pixels')
      p    = get(0,'ScreenSize');          
      a    = dialog('Color',bgc0, ...
        'Name','Load','Resize','off', ...
        'Position',[p(3)/2-150 p(4)/2 300 170]);
      b    = zeros(6,1);

      if strcmp(klass,'double')|strcmp(klass,'char')
        %ssiz = '';
        ssiz = [' ',num2str(s3{1}(1)),'x',num2str(s3{1}(2))];
        for ii=2:length(s3)
          ssiz = str2mat(ssiz, ...
            [' ',num2str(s3{ii}(1)),'x',num2str(s3{ii}(2))]);
        end
        ssiz = cellstr([s,ssiz]);
      else
        ssiz = cellstr(s);
      end

      s    = cellstr(s);
      b(1,1) = uicontrol('Parent',a, ...
        'Position',[3 58 201 109], ...
        'String',ssiz,'UserData',callhand, ...
        'CallBack',['lddlgpls([],[],''',klass,''',[],''listact'')'], ...
        'Style','listbox','Value',[1]);
      b(2,1) = uicontrol('Parent',a, ...
        'Position',[3 3 201 25], ...
        'HorizontalAlignment','left', ...
        'Style','edit','String',s{1}, ...
        'UserData',callhand2, ...
        'FontWeight',fwt);
      b(3,1) = uicontrol('Parent',a, ...
        'Position',[5 30 199 20], ...
        'HorizontalAlignment','left', ...
        'String',['Load ',klass,' Variable:'], ...
        'FontWeight',fwt,'Style','text', ...
        'UserData',s);
      b(4,1) = uicontrol('Parent',a, ...
        'Position',[215 33 75 25], ...
        'String','Cancel','FontWeight',fwt, ...
        'CallBack','close(gcf)');
      b(5,1) = uicontrol('Parent',a, ...
        'Position',[215 3 75 25], ...
        'Interruptible','off', ...
        'String','Load','FontWeight',fwt, ...
        'CallBack',['lddlgpls([],[],''',klass,''',[],''actload'');'], ...  
        'Tag','PushLOADLDDLG');
      if ~isempty(message)
        message = ['load: ',message];
      end
      b(6,1) = uicontrol('Parent',a,'Style','text', ...
        'Position',[215 71 75 96], ...
        'HorizontalAlignment','left', ...
        'String',message,'FontWeight',fwt);
      set(a,'UserData',b)
      for jj=1:length(b)
        set(b(jj,1),'FontName',fnam,'FontSize',fsiz, ...
          'Units','points','BackgroundColor',bgc0)
      end
      set(0,'Units',units0)
      waitfor(a)
    end
  end
else
  b = get(gcf,'UserData');
  if strcmp(action,'actload')
    c = get(b(2,1),'string');
    s = ['exist(''',c,''')'];
    s1= ['assignin(''caller'',''d'',',s,')'];
    evalin('base',s1)
    s = ['isempty(',c,')'];
    s1= ['assignin(''caller'',''e'',',s,')'];
    evalin('base',s1)
    if isempty(c)|(d~=1)|(e==1)
      s = ['variable empty or does not exist in workspace'];
      erdlgpls(s,'Error on Load!');
    else  
      s = ['assignin(''caller'',''d'',',c,')'];
       evalin('base',s)
      set(get(b(1,1),'UserData'),'UserData',d)
      set(get(b(2,1),'UserData'),'UserData',c)
      close(gcf)
    end  
  elseif strcmp(action,'listact')
    c = get(b(1,1),'Value');
    %s = get(b(1,1),'String');
    s = get(b(3,1),'UserData');
    c = s{c};
    set(b(2,1),'string',c);
  end
end

⌨️ 快捷键说明

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