matlab 如何建立、调用自定义函数?

matlab 如何建立、调用自定义函数?,第1张

函数文件需要在编辑器中提前编好程序。点击上面的**“+”号,有一个function,点开就可以编写函数

我的是中文版,和你的对照着可以

函数文件不可以直接运行,必须保存为m文件后,在你的主程序内调用,平常用的很多函数都是这么用的,比如说求余函数 rem(x,y) ,如果没有x,y的实际值是没有函数的实际意义的。

附上我以前的一些简单的自定义函数吧。

记得一定要保存m文件在调用

Matlab中的程序有以下三种类型,现举例如下:

(1)f=@(x)x^2+x+1

(2)syms x;f=2x^3-x^2+1

syms x;f=inline('2x^3-x^2+1')

(3)建立M文件

function f=fun(x)

f=x^2-2x+1

对于你的问题,有多种解决方法,现举一例(是我认为最好的解决办法)

(1)建立M文件,在其中输入如下内容:

function f=fun(x,i)

%x,i均位向量。

f=zeros(length(i),length(x));%预分配变量空间

for k=1:length(i)

f(k,:)=x^i %相当于建立一个含有两个变量的函数。

end

在调用时,如果你需要计算x=[1:10];i=1:2;时f的函数值。可以在MATLAB命令窗口中输入如下命令:

x=[1:5];i=1:2;

f=fun(x,i)

运行所得结果为:

f=

1 2 3 4 5

1 4 9 16 25

当然,此时,若只需求某一个数的某个次方也行。

例如:要求6^3,在MATLAB命令窗口中输入

y=fun(4,3)

得到结果为

y=

64

其他,依次类推。

相当于C语言里面的子函数 声明方法: out=函数名(in1,in2,in3)

声明完之后就是 定义函数的代码

例: result=adder(a,b)

result=a+b;

end

然后点击保存(注意不是运行,而是保存)

然后就能在命令行里面使用你定义的函数了

例: >> a=1;

>>b=2;

>>c=adder(a,b);。

matlab的表达式中的括号全部用圆括号()

函数的定义如下:

function

[outpara1,outpara2,]=function_name(input1,input2,)

输入输出参数不是必须的,可以没既没有输入参数也没有输出参数。

函数的主体就是你要实现的功能

先建一个函数文件,注意文件名必须为f2

文件内容就是

function

z=f2(t,s)

z=[exp(-t+s),exp(-t+3s)+exp(-2t+4s);0,exp(-4t+4s)];

运行一下,然后你在命令窗口输入f2(3,4)就能直接调用

函数如下:

function ind = findNearest(x, desiredVal)

[m,n] = size(x); %%%% 先确定x的大小

erro = abs(x(:)-desiredVal); %%%% 计算误差值,矩阵需要拉成一维向量

min_e = min(erro); %%%% 找到最小误差

temp = reshape(erro,m,n); %%%%% 将一维向量恢复成矩阵

[a,b] = find(temp==min_e); %%%%% 找到最小误差对应的下标

ind = [a b]; %%%% 返回 a 为下标的行,b 为下标中的列

结果测试:

>> A = rand(3) %%%% 产生0到1均匀分布随机数

A =

03922 07060 00462

06555 00318 00971

01712 02769 08235

>> desired = 05 %%%% 测试数据05

desired =

05000

>> findNearest(A,desired) %%%% 调用函数找最接近数下标

ans =

1 1 %%%%% 结果为1 1 ,即第一行第一列,03922确实是最接近05。验证通过

copyright(c) cxd1301

可以,最基本的方法,是新建一个m文件,定义funcition函数

无返回值就  直接写  function 函数名(参数列表)

有返回值就  写       [返回参数列表]=function 函数名(参数列表)

举例如下:

注意保存的时候,文件名和函数名一致

运行结果如下:

还有inline和匿名函数 方法也可以!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11676456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存