函数-Function
MATLAB自带了丰富的函数,当然我们也可以自定义函数来实现自己想要的功能。
比如:rand(3,4)
就能生成3×4的数表,每个数在0~1之间。
输入edit
编辑新文件
function myRand
a=1+rand(3,4)*9
end
保存为myRand.m
,这样就定义了一个myRand函数,用来生成1~10之间的数。其中a为局部变量,只在其作用域(myRand)中有效。
就这样执行myRand
结果会被保存在变量ans中。
修改一下第一行:function a = myRand
,本意是想输出a,运行之后会发现输出了a=... ans=...
两个部分。想要只输出ans,只需在a=1+rand(3,4)*9
后加上;
输入b=myRand
便可将值保存到变量b里。
将函数修改一下
function a=myRand(low, high)
a=low+rand(3,4)*(high-low);
end
就可以输出在low~high之间的随机数表了。若想输出a中的全部数字的和,则可以改成如下
function [a,s]=myRand(low, high)
a=low+rand(3,4)*(high-low);
v=a(:);
s=sum(v);
end
然后在命令行中输入[x ss]=myRand(1,10)
就会分别输出数表x及所有数字之和ss
function的定义
funtion [out-arg1, out-arg2, ...]
=function-name(in-arg1, in-arg2, ...)
不确定函数名是否已定义,可以用help exist
subfunction-定义多个(子)函数
举个栗子
function [a, s] = myRand(low, high)
a = low+rand(3,4)*(high-low)
s = sumAllElements(a);
function summa = sumAllElements(M)
v = M(:);
summa = sum(v);
全局变量
global v;
v=(...);
一定要分开写
新手尽量少使用,可能会导致难检测的错误。
function的优点
- 将一个大问题分解
- 功能的分解
- 代码复用
- 普遍性
Script-脚本
是一个.m
文件,用来执行一系列命令、赋值等计算
执行脚本时只需输名字
fprint('This is matlab\n');
pause(5);
quit;
©Fing