Matlab Fcn模块怎么用呢?

我写了个m函数,function [output1, output2] = gaindouble( input_args ).

在Simulink里面用Matlab Fcn模块调用该函数,output dimension设成2。但是总是提示错误:The width of the result was 1 when a width of 2 was expected

请问哪里出错了呢?

1、创建.m文件,.m文件中用关键字function定义函数,定义函数的格式如下:

function [输出变量] = 函数名称(输入变量)

输入变量和输出变量可以是一个,也可以是多个。

function [输出变量] = 函数名称(输入变量)

% 注释

% 函数体

2、保存.m文件时,一定要用函数名称保存.m文件。

举例如下:

function [a,b,c]=test(d,e,f)

a=d+e;

b=e+f;

c=f+d;

end

保存文件为test.m文件。

函数的调用:

[q,w,e]=test(1,2,3)

注意: 函数调用的时候,不一定要用定义函数时所使用的参数字母。如

m1=1,m2=2,m3=3,

[h,j,k]=test(m1,m2,m3)

同样可以完成对自定义test函数的调用。

扩展资料

在 MATLAB Function 模块中使用全局变量:

一、要在 MATLAB Function 模块或此模块调用的任何代码中使用全局数据,必须:

1、在 MATLAB Function 模块中或在 MATLAB Function 模块调用的任何代码中声明一个全局变量。

2、在 MATLAB Function 模块中注册一个与全局变量具有相同名称的 Data Store Memory 模块或 Simulink.Signal对象。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-19
怎么解决的 啊 输出改成一个y,然后在函数体中让y=[output1, output2]就可以了~ 不行啊
第2个回答  2010-03-09
输出时两个一维的,不应该设置为2.本回答被提问者采纳
第3个回答  推荐于2016-05-30
  MATLAB Fcn 模块
  MATLAB Fcn模块对它的输入进行指定的Matlab函数或者表达式运算。输出尺寸必须和模块中定义的尺寸相符,否则报错。
  下面是MATLAB Fcn模块中可以使用的有效表达式
  sin atan2(u(1),u(2)) u(1)^u(2)
  注意:
  同Fcn模块相比,在仿真中MATLAB Fcn模块速度要慢,因为它需要在每个积分步骤中调用Maltab编译器。因此建议使用Fcn模块或者 Math Function模块代替MATLAB Fcn模块,或者编写M文件或者MEX文件S 函数代替它。
相似回答