matlab中怎么表示一个函数啊

function Faf = frft(f, a)% The fast Fractional Fourier Transform% input: f = samples of the signal% a = fractional power% output: Faf = fast Fractional Fourier transform程序是这样 我怎么表示f啊 比如我想输入正弦函数 怎么表示

用function函数,再在主程序中调用就可以。
举个简单的例子建立一个myfunction.m,然后在文件中写。
functiony=myfunction(a,b)
其中a,b是输入函数的参数,y是函数返回的值。当需要返回多个值时,可以将y看作一个数组,或者直接将函数的开头写成如function [x,y]=myfunction(x,y)的形式。
然后就是定义函数的内容,通俗的说就是怎样由输入参数a,b得到返回值y。比如最简单的y=a+b。
总结一下,将下面的代码
function y=myfunction(a,b)
y=a+b;
保存为一个m文件myfunction.m,调用方式如下。
num=myfunction(3,4);
这样就可以由函数中的y=a+b得到num的值是3+4=7。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-23
你这样定义就可以,给你举个例子,比如任意定义函数如下:function r=ff(x) r=sin(x);定义一个求积分的函数integr(),函数如下定义:function result=integr(a,b,n,fun) ;h=(b-a)/n; x=[a:h:b]; y=fun(x);%fun为传入的函数指针,可以直接作为引用result=sum(y);则可以通过如下方式使用:integr(0,1,1000,@ff)%‘@’即表示ff作为函数指针传入,有时也叫做函数句柄 还有一种方法是把f(x)函数名作为字符串传入,则在Integr()中只需将f(x)函数名及其参数写为一个字符串,使用eval(字符串)执行即可,如:function result=integr(a,b,n,fun)%定义积分函数,a为积分下限,b为积分上限,n为划分区间的个数,fun为需进行计算的函数的文件名h=(b-a)/n; x=[a:h:b]; y=eval([fun,'(x)']);%将函数名fun和其参数x合成一个字符串并执行字符串,即执行计算fun(x),注意不能丢了fun的括号。result=sum(y);在命令窗口引用即可:将'ff'换为其他函数名字符串即可进行计算其数值积分。integr(0,1,1000,'ff')
第2个回答  2015-06-10
任意定义函数如下:function r=ff(x) r=sin(x);定义一个求积分的函数integr(),函数如下定义:function result=integr(a,b,n,fun) ;h=(b-a)/n; x=[a:h:b]; y=fun(x);%fun为传入的函数指针,可以直接作为引用result=sum(y);则可以通过如下方式使用:integr(0,1,1000,@ff)%‘@’即表示ff作为函数指针传入,有时也叫做函数句柄 还有一种方法是把f(x)函数名作为字符串传入,则在Integr()中只需将f(x)函数名及其参数写为一个字符串,使用eval(字符串)执行即可,如:function result=integr(a,b,n,fun)%定义积分函数,a为积分下限,b为积分上限,n为划分区间的个数,fun为需进行计算的函数的文件名h=(b-a)/n; x=[a:h:b]; y=eval([fun,'(x)']);%将函数名fun和其参数x合成一个字符串并执行字符串,即执行计算fun(x),注意不能丢了fun的括号。result=sum(y);在命令窗口引用即可:将'ff'换为其他函数名字符串即可进行计算其数值积分。integr(0,1,1000,'ff').
这个问题涉及到函数调用的问题,有两种方式,可以以字符串格式传入再用eval调用同名函数,也可以@fun方式作为函数指针传入,站长的解释非常清楚,希望楼主可以理解这里面的深层含义。
第3个回答  2015-07-01
你这样定义就可以,给你举个例子,比如任意定义函数如下:function r=ff(x) r=sin(x);定义一个求积分的函数integr(),函数如下定义:function result=integr(a,b,n,fun) ;h=(b-a)/n; x=[a:h:b]; y=fun(x);%fun为传入的函数指针,可以直接作为引用result=sum(y);则可以通过如下方式使用:integr(0,1,1000,@ff)%‘@’即表示ff作为函数指针传入,有时也叫做函数句柄 还有一种方法是把f(x)函数名作为字符串传入,则在Integr()中只需将f(x)函数名及其参数写为一个字符串,使用eval(字符串)执行即可,如:function result=integr(a,b,n,fun)%定义积分函数,a为积分下限,b为积分上限,n为划分区间的个数,fun为需进行计算的函数的文件名h=(b-a)/n; x=[a:h:b]; y=eval([fun,'(x)']);%将函数名fun和其参数x合成一个字符串并执行字符串,即执行计算fun(x),注意不能丢了fun的括号。result=sum(y);在命令窗口引用即可:将'ff'换为其他函数名字符串即可进行计算其数值积分。integr(0,1,1000,'ff')
第4个回答  2013-10-23
这个问题涉及到函数调用的问题,有两种方式,可以以字符串格式传入再用eval调用同名函数,也可以@fun方式作为函数指针传入,站长的解释非常清楚,希望楼主可以理解这里面的深层含义。
相似回答