matlab设置自定义函数属性,Matlab自定义函数详解

很久以前写的一篇Matlab自定义函数访问量很大,可惜没有点赞的,我感觉是我没讲清楚,这里又写了一篇笔记

Matlab函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Matlab提供了许多内建函数,比如disp()。但你也可以自己创建函数,这被叫做用户自定义函数

>> disp(‘hello world‘)

hello world

总的来说,自定义函数分为两步:即定义函数和调用函数。

定义一个函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

函数代码块以 function关键词开头,后接输出变量和函数标识符名称和圆括号 ()。

任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以end结束。

函数需要定义在脚本文件(*.m)中运行,不可以在命令窗口中临时创建。

语法

Matlab定义函数需要使用function关键字,一般格式如下:

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

函数体

end

这里的输入变量和输出变量都可以根据实际情况缺省。

实例

创建一个函数,用来输出“hello world!” ,步骤如下:

新建一个脚本,命名为eg1.m

test();

function test()

disp(‘hello world!‘)

end

点击顶部菜单的运行按钮,即可在命令窗口输出:

>> eg1

hello world!

更复杂一点的应用,我们让函数带上输入变量和输出变量:

s = calc_area(4,5);

function s = calc_area(w,h)

s = w*h;

disp([‘area=‘,num2str(s)]);

end

以上实例输出:

>> eg2

area=20

输入变量缺省

有时候,输入变量的个数不确定,但是又想将不同个数情况统一到一个函数里,即输入变量有缺省时,可以利用nargin来判断,然后给出对应的输出。例如:

out(1)

out(1,2)

out(1,2,3)

function out(a,b,c)

if nargin == 1

disp(a)

elseif nargin == 2

disp([a,b])

elseif nargin == 3

disp([a,b,c])

end

end

上面的实例将会得到:

>> eg5

1

1 2

1 2 3

可以看到,当输入不同输入变量个数时,会找到对应个数下的执行代码,返回相应的内容。

当然这种做法也存在弊端,当变量个数太多时,要写很多个判断;这种情况下可以尝试inputParser,这里我就不多解释了,有兴趣可以了解下。

函数调用

函数基本结构完成后,进行调用时,存在两种方法:

直接在函数所在脚本文件内调用(上面的例子就是这种情况);

函数定义与调用分开,各自存为一个脚本,运行调用脚本。

法一:脚本内调用函数

6987ea60e64859a64bfbb4bcc7b6ab91.png

如上图所示,调用函数在前,定义函数在后,点运行即可得到输出。

法二:函数脚本独立,另外写代码调用

4d387a352ddb4038bfe3003e0e68494f.png

8ac78443ca6261a591caeec51d8ea0fe.png

如上图所示,函数脚本和调用函数的脚本分开了,保存在同一路径下。

在第二种方法下,也可以在命令窗口直接调用所写的函数:

dde5db04ed0fa63db71f608ce5ce4d33.png

这种调用与上面本质上是一样的,都是首先找到以函数名命名的脚本文件,然后再执行函数内部代码块,返回结果。在这里必须注意函数脚本名字要与函数名一致。

事实上,为了让编程变得系统化,模块化,我们不建议你采用第一种方法去写代码,因为这样不利于分析和维护代码。

而采用后面一种方法时,我们可以定义很多个函数,然后在其他脚本里调用它们,这样形成了一种模块化的关系。我们在分析代码时,注意力可以集中到主程序上,思路将更加清晰。

输出值缺省调用

在matlab的函数中,可以选择性地获取所返回的变量列表值,下面给出实例:

default = out()

[a,~,~]= out()

[~,b,~] = out()

[~,~,c] = out()

function [a,b,c] = out()

a = 1;

b = 2;

c = 3;

end

上述实例输出结果:

>> eg4

default =

1

a =

1

b =

2

c =

3

可以看到,函数默认以返回的第一个变量为输出值;若想得到返回的某个值时,用变量接住,对于不需要的值,则需要用~占位,但不接收这个值,这样做的目的就是为了保证输出的序号能够匹配到。

小结

函数就是定义和调用,针对实际问题,分析出输入、输出变量,理清楚中间环节以什么样的流程一步步转换,这样就可以顺利完成自定义函数的编写。

经过上面的学习,你应该掌握了基本的自定义函数的用法了。那么开始你的探索之旅吧,以代码为笔,勾画出脑海中的想法,让它变成现实!

原文:https://www.cnblogs.com/gshang/p/12763028.html

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值