MatLab函数设计

m语言

MatLab使用的m语言是一种脚本语言,.m文件是脚本文件,只有在运行的时候才会生成2进制代码。请尝试将.m文件的后缀名改为.txt,依然可以正常打开

两种文件

MatLab有2种文件:脚本文件函数文件
脚本文件:可以没有输入,一般有输出
函数文件:一般有输入,一定有输出
2种文件的后缀名都是.m,唯一的区别在于函数文件的第一行有函数声明

函数文件格式

函数文件的第一行一定是:

function y = fname(x)

function MatLab的函数定义关键字
fname 函数名,请将函数名和文件名保持一致,养成好习惯
y 函数返回值
x 函数参数

和C语言不同,MatLab函数不用声明参数和返回值的数据类型
如果返回值有多个,或者参数有多个,则声明变成:

function [y1, y2, y3] = fname(x1, x2, x3)

完整函数示例

新建脚本文件power.m

function y = square(x)
% 以下是注释,好的函数文件应该有详细的注释
% square 返回x的平方
y = x ^ 2;	% 和C语言不同,不用return,直接赋值即可
end			% 函数结束的标志

小测试:试新建函数文件,函数接收2个参数,同时返回2个参数的乘积和平均值,并在脚本文件中调用它

函数文件func.m

function [prod, aver] = func(a, b)
prod = a * b;
aver = (a + b) / 2;
end

脚本文件test.m

a = 1;
b = 2;
[c, d] = func(a, b)

流程控制关键字

C语言有流程控制关键字if-else while for,MatLab也有,但是格式有细微不同

条件控制 if-elseif-else-end

示例:

if a < 0
	……
elseif a < 10
	……
else
	……
end

循环控制 for-end while-end

示例:

for i = 1 : 10
	sum = sum + a(i);
end
while i < 10
	sum = sum + a(i);
	i = i + 1;
end

break和continue

这2个关键字功能和C语言相通,但是break在MatLab中还可以在if-end结构中使用,作用为跳出条件语句
示例:

if a < 0
	If a == -1
		break;
	sum = sum + a;
end

return

MatLab函数不用像C语言一样return返回值,return用于提前结束函数文件的执行

*函数重载

自行百度以下关键字:
MatLab vargin
MatLab varout
MatLab varargin

*子函数和匿名函数

自行百度以下关键字:
MatLab 子函数

匿名函数

匿名函数,没有函数名的函数,如果要实现的函数功能很简单,没有必要创建一个函数文件,就可以用匿名函数
可以通过函数句柄创建:

sum = @(x, y) x + y;

(x, y) x + y 是一个匿名函数,参数是 x y,返回值是 x + y,但是这个函数没有名字,不能直接被调用,所以要让一个变量sum来保存匿名函数的句柄
匿名函数由@开头,简洁明了

*addpath

MatLab有个工作区,工作区是一个特殊的文件夹
※所有的脚本文件和函数文件必须放在工作区里才可以被MatLab识别
一般工作区默认为桌面
显然不能把所有文件堆在一起,正常人会建立文件夹把文件分类,但是建立了文件夹会导致文件不在工作区中,这就需要addpath指令
自行百度以下关键字:
MatLab addpath

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值