2.结构化函数与自定义
2.1 一些Matlab操作
- %表示将语句作为注释
- %%可以将一段代码作为一个小节单独运行(Ctrl+Enter),利于debug
- 每种语句结构中都是要用end对应结尾,嵌套的同样需要
- 可利用右键中的注释功能将所有选中的语句注释(快捷键为Ctrl+R)
- 利用右键中的智能缩进(smart indent)可以将选中的代码变得整洁易懂
- 显示运算结果:disp(x)
- 当使用变量variable输出时,要确定它是否已经被赋值,如果是的话,则需要使用:clear variable将其清空
2.2 函数语句
逻辑关系符
循环和条件关键字
if elseif else
switch
while
for
break
2.3 技巧
pre-allocating space:加快运行速度
B 更快;
故在写程序时,先开辟空间效率比A中的逐个动态开辟空间A(i, j) = ii + jj效率更高
书写换行
MATLAB中的 … 等价于 python中的换行衔接 /
2.4 自定义函数
用>> edit(which(‘functionName.m’))就可以查看该函数的详细信息
y为output,x为input,mean为functionName
函数名要同保存的文件名一致(即这里要存为mean.m)
单个输出
该函数使用了点乘,使得函数可以同时处理输入为向量的情形,即可同时计算多组不同参数的结果(使用Script编写的脚本函数到command windows调用)
如下图所示:
第二张图的输入计算了:
- 初始位移为0,初始速度为0,下落时间为5s
- 初始位移为0,初始速度为10,下落时间为6s
这两种情况的结果
多个输出
多个输出,就是修改关键字function后的输出变量形式
script中为:
注:同时输出a,F,则在function后将变量写为[x1 x2]
判断函数参数大小
- nargin表示的是函数输入参数的数量;上面的程序段的意思是:若输入的参数数目只有2个,则将height默认设置为1;相当于python中:def pillar(Do,Di,height=1)
- nargout:函数输出的参数个数
- varargin:输入参数为列表时的长度
2.5 匿名函数
语法:
f = @(x) experssion(x)
define x
2.6 小练习
function Cel = F2C(Fah)
while(true)
F = input('Temperature in F:','s'); % s表示接收的形式为字符串
temp = str2num(F);
if isempty(temp)
break
else
fprintf('Temperature in C: %f\n',(temp-32)*5/9);
end
end