www.gusucode.com > MATLAB雷达工具箱 > MATLAB雷达工具箱/MATLAB雷达工具箱/dbtlinkR1-3/toworkspace_s.m
function [sys,x0,str,ts] = toworkspace_s(t,x,u,flag,restParam) % % The general form of an M-File S-function syntax is: % [SYS,X0,STR,TS] = SFUNC(T,X,U,FLAG,P1,...,Pn) % % Optional parameters, P1,...,Pn can be provided to the S-function and % used during any FLAG operation. switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case { 1, 2, 4, 9 } sys=[]; % Unused flags case 3, sys=mdlOutputs(t,x,u,restParam); otherwise error(['Unhandled flag = ',num2str(flag)]); end % %============================================================================= % mdlInitializeSizes % Return the sizes, initial conditions, and sample times for the S-function. %============================================================================= % function [sys,x0,str,ts]=mdlInitializeSizes % call simsizes for a sizes structure, fill it in and convert it to a % sizes array. sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 0; sizes.NumOutputs = 0; sizes.NumInputs = 1; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; % at least one sample time is needed sys = simsizes(sizes); x0 = []; % No continuous states str = []; % str is always an empty matrix, reserved for future use by Simulink ts = [0 0]; % initialize the array of sample times % end mdlInitializeSizes %============================================================================= % mdlOutputs % Return the block outputs. %============================================================================= function sys=mdlOutputs(t,x,u,restParam) paramNoIn1 = u; eval(['global pipeVar',num2str(paramNoIn1)]) eval(['global ',restParam]) eval([restParam,' = pipeVar',num2str(paramNoIn1),';']) % The parameter restParam contains the desired workspace name. eval(['clear global pipeVar',num2str(paramNoIn1)]) sys=[]; % end mdlOutputs