copy_model.m

来自「一个matlab的将军模型」· M 代码 · 共 53 行

M
53
字号
function copy_model(src,dst)

% Copy a Simulink model
%
% Syntax:
%   "copy_model(src,dst)"
%
% Description:
%   "copy_model(src,dst)" creates a copy, "dst", of the Simulink system "src".
%
% See Also:
%   validate

% Create new system and copy the location information from the source system
new_system(dst);
location = get_param(src,'Location');
set_param(dst,'Location',location);

% Copy all blocks from the source system
blocks = get_param(src,'Blocks');
for k = 1:length(blocks)
  add_block([src '/' blocks{k}],[dst '/' blocks{k}]);
end

% Copy all lines (recursively) from the source system
lines = get_param(src,'Lines');
for k = 1:length(lines)
  copy_line(lines(k),dst)
end
return

% -----------------------------------------------------------------------------

function copy_line(line,dst)

Points = line.Points;
k = 1;
while (k < size(Points,1))
  if all(Points(k,:) == Points(k+1,:))
    Points = [Points(1:k,:); Points(k+2:size(Points,1),:)];
  else
    k = k + 1;
  end
end
if size(Points,1) > 1
  add_line(dst,Points);
end

for k = length(line.Branch):-1:1
  copy_line(line.Branch(k),dst);
end
return

⌨️ 快捷键说明

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