matlab中怎么定义一个函数

作者&投稿:春闸 (若有异议请与网页底部的电邮联系)
怎么定义一个分段函数 在matlab中~

1、绘制分段函数图像,需要知道分段函数的表达式。来绘制分段函数图像,该函数分为三段。

2、x的取值范围选取0到3,y的表达式书写如下图所示,表示为每段的函数表达式乘以x区间的逻辑表达式,如果x的值在范围内,就乘以1,不在范围内,就乘以0。

3、点击回车键,运行程序,运行结果如下图所示,可以看到绘制的分段函数图像,一次性就绘制成功了。

4、分段函数为三段,每个x区间内有对应的y值表达式。

5、书写y的值如方框处所示,表达出了y的函数值。

6、点击回车键,开始运行程序,运行结果如下图所示,分段函数绘制成功了。

matlab中定义函数的方式有以下几种:

1、函数文件+调用函数文件:定义多个M文件。
% 调用函数文件:myfile.m
clear
clc
for x=1:10
y=mylfg(x);
end
%自定义函数文件: mylfg.m
function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致
Y=3*x+1;
注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。
2、函数文件+子函数:定义一个具有多个子函数的M文件。
%命令文件:funtry2.m
function []=funtry2()
for x=1:10
y=lfg2(x);
End
function y=lfg2(x)
Y= 3*x+1;
%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。
3、Inline内联函数:无需M文件,直接定义。
%inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。
调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。
例如:
f=inline(‘3*x+1‘,’x’);
z=f(2)
Ans=7
注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。 缺点是该方法只能对数值进行代入,但是不支持符号代入,且对定义后的函数不能进行求导等符号运算。

方法:

1、函数文件+调用函数文件:定义多个M文件;

% 调用函数文件:myfile.m

clear

clc

for t=1:10

y=mylfg(t);

fprintf(‘M^(1/3)=%6.4f
’,t,y);

end

%自定义函数文件: mylfg.m

function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致

Y=x^(1/3);

注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。

2、函数文件+子函数:定义一个具有多个子函数的M文件

%命令文件:funtry2.m

function []=funtry2()

for t=1:10

y=lfg2(t)

fprintf(‘M^(1/3)=%6.4f
’);

End

function y=lfg2(x)

Y= x^(1/3);

%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。

3、Inline:无需M文件,直接定义;

%inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。

调用方式:y=f(数值列表) %

注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。



matlab中定义函数的方式有以下几种:

1、函数文件+调用函数文件:定义多个M文件。

% 调用函数文件:myfile.m

clear

clc

for x=1:10

y=mylfg(x);

end

%自定义函数文件: mylfg.m

function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致

Y=3*x+1;

注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。

2、函数文件+子函数:定义一个具有多个子函数的M文件。

%命令文件:funtry2.m

function []=funtry2()

for x=1:10

y=lfg2(x);

End

function y=lfg2(x)

Y= 3*x+1;

%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。

3、Inline内联函数:无需M文件,直接定义。

%inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。

调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。

例如:

f=inline(‘3*x+1‘,’x’);

z=f(2)

Ans=7

注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。 缺点是该方法只能对数值进行代入,但是不支持符号代入,且对定义后的函数不能进行求导等符号运算。



自定义函数的途径:
M文件函数(M file function)
在线函数(Inline Function)
匿名函数(Anonymous Function)
1.M文件函数
范例
function c=myadd(a,b)
%这里可以写函数的使用说明,前面以%开头
%在工作区中,help myadd将显示此处的说明
c=a+b;
%end %非必须的
第一行function告诉Matlab这是一个函数,a,b是输入,c是输出,myadd是函数名。以m文件定义的函数必须保存为函数名的形式,上例中,函数应保存为myadd.m。要使用myadd函数,该函数必须在Matlab的搜索路径中。
调用方式:
在Matlab命令符后输入
a=1;b=2;
c=myadd(a,b)
关于m文件定义函数还有许多的说明,暂时略去。。。
2.在线函数(Inline Function)
通常作为参数传递给另外一个函数。比如fminsearch,lsqcurvefit等函数需要以函数作为参数。
在线函数从字符串表达式创建函数,例如:
f=inline('x.^2','x');
创建了函数f(x)=x^2。要计算f(3),在工作区输入f(3)即可。f([2 3 4])计算在x=2 3 4时的值
f=inline('x+y','x','y')
创建了二元函数f(x,y)=x+y,工作区输入f(2,3)计算2+3,等同于feval_r(f,2,3)。
3.匿名函数(Anonymous Function)
匿名函数使用函数句柄来表示匿名函数,定义形式为
函数句柄=@(变量名) 函数表达式
例如:
f=@(x) x.^2
定义了函数f(x)=x^2,f(2)计算在x=2处的值。
匿名函数可以调用Matlab函数,也可以使用工作区中存在的变量,例如
a=2;
f=@(x) x.^2+a
f(2) %计算时引用了变量a
a=0;
f(2) %仍然引用的是a=2
匿名函数也可以由Matlab的内置函数或M文件函数创建,例如
f=@sin %f(x)=sin(x)
f(pi/2) %sin(pi/2)
functions(f) %查看函数信息
利用单元数组可以创建多个函数的句柄,例如
f={@sin @cos}
f{1}(pi/2) %计算sin(pi/2)
f{2}(pi) %计算cos(pi)
函数句柄的另一个重要特征是可以用来表示子函数、私有函数和嵌套函数。
Matlab 7以后,建议以匿名函数取代在线函数!!!
在创建匿名函数时,Matlab记录了关于函数的信息,当使用句柄调用该函数的时候,Matlab不再进行搜索,而是立即执行该函数,极大提高了效率。

首先建立M文件或直接点击(File/New/Function)建立函数文件,其中函数文件的格式是:
function [输出变量] = 函数名称(输入变量)
% 注释
% 函数体
如下所示,是编写的一个求1到n之和的求和函数 eg_sum,按照上述格式,编写代码如下并保存文件,注意文件命名时不能以数字开头:
function [s] = eg_sum( n )
% calculate the sum of 1..n
s = 0;
for i = 1:n
s = s + i;
end

回到控制台Command Window(主界面),注意要使用之前保存的函数文件名来调用函数。




matlab中怎么定义函数
首先建立M文件或直接点击(File\/New\/Function)建立函数文件,其中函数文件的格式是:function [输出变量]= 函数名称(输入变量)注释 函数体 如下所示,是编写的一个求1到n之和的求和函数 eg_sum,按照上述格式,编写代码如下并保存文件,注意文件命名时不能以数字开头:function [s]= eg_sum(n )calc...

matlab中,如何确定向量中第二大数的位置
将以下程序直接考入运行即可 a=[100,1,1,1,2,2,2,1,4,1,2,5,99,0,0,1,1,1,2];%用来测试程序的向量 [max_value max_position]=max(a);%先得到最大值的数值和位置 a(max_position)=min(a);将最大值的数值用向量最小值替代,这样第二大的值就变成了最大值,且所在位置不变 [...

matlab中plot()画图时如何指定X Y轴的范围
可以用matlab提供的坐标轴设置函数axis进行设置(对当前坐标轴进行设置),具体用法如下:plot(x, y); \/\/ 画图后用axis函数设置坐标轴的范围 axis([xmin xmax ymin ymax]); % 设置坐标轴在指定的区间 xmin、xmax 表示设置横坐标的最小最大值;ymin、ymax 表示设置纵坐标的最小最大值。也可以...

怎么在matlab中定义以及绘制一个0,1交替函数
自定义函数的途径:M文件函数(M file function)在线函数(Inline Function)匿名函数(Anonymous Function)1.M文件函数 范例 function c=myadd(a,b)这里可以写函数的使用说明,前面以%开头 在工作区中,help myadd将显示此处的说明 c=a+b;end 非必须的 第一行function告诉Matlab这是一个函数,a,b是...

matlab 中如何定义周期函数
只是要结果的话,没必要画圆,只要求出R与A,B之间对应关系即可。可以用迭代法或者代数法求解。迭代法就是从初始半径开始,不断累加0.5去尝试,并且不断交替变换A,B值,直到到达目标半径。代数法就是算出半径与输出之间的公式关系,然后将要求的R直接带入求解。(如果你非要画圆,那也只是画图技巧...

如何在matlab定义函数中定义参数的数据类型
出现这个错误可能是你的自定义函数并没有加入matlab默认的搜索范围 可以试试看 在主界面中 file->set path->add folder 将你存储这个函数的文件夹添加进去 再试试看调用这个函数

在MATLAB中如何定义变量
在程序的开头写 N=3;在后面要用到N的时候写N就好了。改的话改开头的

matlab 中如何定义周期函数
其实 MATLAB里面有直接定义三角波的函数的 就是 sawtooth(t,width) 其用法跟sin(t)差不多.比方说你的条件是x=1-abs(t) (-2<t<2)下面是代码:clear all clc t=-4:0.01:4;f=sawtooth(1\/2*pi*(t+2),0.5);plot(t,f);grid on;最后附上一些函数吧 特殊函数 boxcar() 矩形窗 t...

怎么用matlab定义saleh函数
以m文件定义的函数必须保存为函数名的形式,上例中,函数应保存为myadd.m。要使用myadd函数,该函数必须在Matlab的搜索路径中。 调用方式:在Matlab命令符后输入a=1;b=2;c=myadd(a,b) 关于m文件定义函数还有许多的说明,暂时略去。。。 2.在线函数(Inline Function) 通常作为参数传递给另外一个函数...

matlab怎么生成指定范围的随机数
有时候我们在进行matlab编程的时候,想生成指定范围的随机数,怎么生成呢,下面来分享一下方法 方法一:通过rand()函数生成 第一步打开matlab命令行窗口,输入help rand,按回车键,可以看到关于rand()函数的用法介绍,生成随机数的函数,如下图所示:第二步我们输入round(rand(1,5)*10),按回车键就...

汤原县15983153384: 在matlab中怎么定义函数 -
籍凌益气: function my=xj(x) my=x+1;%举例说明 在命令窗口调用时 xj(3) 输出就为4,因为x=3,my=x+1 你没有定义函数表达式,而且没有输入参数

汤原县15983153384: matlab中如何自己定义函数,求步骤以及格式 -
籍凌益气: 举例说明:假设有个函数 y=2*x^2+3*x+4,编写一个子函数(自定义函数) 建立1个*.m文件,文件内容如下 function y=f(x) %x为子函数输入,y为输出,输入输出可以是多个,也可以是数组或矩阵 y=2*x.^2+3*x+4 保存此m文件名为y 调用时 x=2; y=f(x); 或者 x=[1 2 3];y=f(x)

汤原县15983153384: MATLAB如何定义函数 -
籍凌益气: 自定义函数的途径: M文件函数(M file function) 在线函数(Inline Function) 1.M文件函数范例function c=myadd(a,b) %这里可以写函数的使用说明,前面以%开头 %在工作区中,help myadd将显示此处的说明c=a+b;%end %非必须的 第一行...

汤原县15983153384: 如何正确地在matlab里创建自定义函数,求高手指教~ -
籍凌益气: f=sym('(1+t/2)*(Heaviside(t+2)-Heaviside(t-2)')少了个括号,应该是发f=(1+t/2)*(Heaviside(t+2)-Heaviside(t-2));解决办法 clc; Heaviside=@(t) t>=0; syms t f=sym('(1+t/2)*(Heaviside(t+2)-Heaviside(t-2))') subplot(2,3,1),ezplot(f,[-3,3]) y1=subs(f,t,t+2)...

汤原县15983153384: matlab中怎么定义一个函数 -
籍凌益气: 只有在m文件中定义的第一个函数才可以在命令窗口直接调用,并且文件名字必须和函数名字相同.命令窗口是不能定义函数的

汤原县15983153384: matlab 怎么调用自定义函数 -
籍凌益气: 1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件; 2、函数文件+子函数:定义一个具有多个自定义函数的M文件; 3、Inline:无需M文件,直接定义; 4、匿名函数; 5、Syms+subs: 无需M文件,直接定义; 6、字符串+...

汤原县15983153384: matlab定义函数 -
籍凌益气: function count = GetCount(A,num) count = sum(sum(A==num));% 调用 >> A = randint(5,7,[1 10]); ct = GetCount(A,10)

汤原县15983153384: 如何使用MATLAB定义一个函数 -
籍凌益气: function mv = data(A) % 求A数组的最大数 mv = max(A)% 以上代码保存为 data.m % 定义了一个求数组最大值的函数 data% 调用>>A = rand(1,8);>>mv = data(A)

汤原县15983153384: matlab中怎么定义函数啊?是不是不能在命令窗口,听过i输入代码直接定义函数?我是新手,求教.
籍凌益气: 输入edit然后会弹出一个窗口,在里面定义函数.函数似乎是要在m文件里定义,要保证你的函数名和m文件名一致(就是弹出的那个窗口保存时文件名和你的函数名一样).

汤原县15983153384: matlab怎么建立自定义函数 -
籍凌益气: 新建一个m文件 在m文件里面第一行输入function [x,y]=pll(x1,y1,x2,y2),这里x1 x2 y1 y2是你函数的输入值, x y是输出值,接着定义你要实现的功能,比如:x = x1 + x2; y = y1 + y2; 接着保存这个m文件,注意!! 这个m文件的名字必须是定义的函数的名字,即保存为pll.m 否则会出错.接着在matlab命令窗口中输入 pll(1,2,3,4)看看会得到什么? 也可以另外创建一个m文件,在这里调用pll()这个函数.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网