目录
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