各位大虾,小弟编写了一个M文件,将其调到simulink中进行仿真,模块是用S-Function system来搭建的,出现如下错误:
Error evaluating parameter 'A' in 'fun/S-Function': Undefined function or variable 'A'.
请大家帮忙解决,急!

M文件内容如下:
function [sys,x0,str,ts] = fun(t,x,u,flag,A,B,C,D)

A=[2.25, -5, -1.25, -0.5; 2.25, -4.25, -1.25, -0.25;
   0.25, -0.5, -1.25, -1; 1.25, -1.75, -0.25, -0.75];
B=[4,6;2,4;2,2;0,2];
C=[0,0,0,1;0,2,0,2];
D=zeros(2,2);
switch flag,
    case 0
        [sys,x0,str,ts] =mdlInitializeSizes(A,D);
    case 1
        sys = mdlDerivatives(t,x,u,A,B);
    case 3
        sys = mdlOutputs(t,x,u,C,D);
    case {2,4,9}
        sys = [];
    otherwise
        error(['Unhandled flag = ',num2str(flag)]);
end

function [sys,x0,str,ts] = mdlInitializeSizes(A,D)
sizes = simsizes;
sizes.NumContStates = size(A,1);
sizes.NumDiscStates = 0;
sizes.NumOutputs = size(A,1)+size(D,1);
sizes.NumInputs = size(D,2);
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = zeros(size(A,1),1);
str = [];
ts = [-1 0];

function sys = mdlDerivatives(t,x,u,A,B)
sys = A*x + B*u;

function sys = mdlOutputs(t,x,u,C,D)
sys = [C*x+D*u; x];

不知道错在哪里了,怎么会显示A没定义呢?