abschuss.m
上传用户:loeagle
上传日期:2013-03-02
资源大小:1236k
文件大小:2k
源码类别:

通讯编程文档

开发平台:

Matlab

  1. function rarg = abschuss(system);
  2. % kills Simulink system 
  3. %
  4. % -all systems or specified system 
  5. % -all windows are closed
  6. if nargin < 1                  % no argument -> kill all
  7.   % find all systems
  8. while (~isempty(get_param(0,'CurrentSystem')))
  9. system=get_param(0,'CurrentSystem');
  10.     isempty(get_param(0,'CurrentSystem'))
  11.     
  12.     % find root system
  13.     root=system
  14.     while ~isempty(get_param(root,'Parent')),
  15.         
  16.       root=get_param(root,'Parent');
  17.       
  18.     end;
  19.     
  20.    % stop root system (simulation)
  21.     
  22.     set_param(system, 'SimulationCommand','Stop');
  23.   
  24.     % close system
  25.     close_system(system,0)
  26.     clear functions
  27.     % close all windows of the system
  28.     children = get (0, 'Children');
  29.     for child = children'
  30.       pos = findstr(get (child, 'Name'), [system,'/']);
  31.       if ~isempty(pos)
  32.         if pos(1) == 1
  33.           delete (child);
  34.         end;
  35.       end
  36.     end;
  37.     clear children child pos;
  38.   end;
  39. else                           % kill only specified system
  40.  %disp(['Kill  ',system,' ']);
  41.   % check if system exists
  42.   if ~(exist(system) == 4)
  43.     disp([' ',system,' not found'])
  44.    else
  45.     % find root system
  46.     root=system;
  47.     while ~isempty(get_param(root,'Parent')),
  48.       root=get_param(root,'Parent');
  49.     end;
  50.     
  51.     if ~isempty(root)
  52.       
  53.         % stop root system (simulation)
  54.     
  55.         set_param(system, 'SimulationCommand','Stop');
  56.     
  57.     end
  58.     % kill system
  59.     close_system(system,0)
  60.     clear functions
  61.   end;
  62.    % close all windows of the system
  63.     children = get (0, 'Children');
  64.     for child = children'
  65.       pos = findstr(get (child, 'Name'), [system,'/']);
  66.       if ~isempty(pos)
  67.         if pos(1) == 1
  68.           delete (child);
  69.         end;
  70.       end;
  71.     end;
  72.     clear children child pos;
  73. end;