matlab网课笔记-----结构化程式与自定义函数
结构化程式与自定义函数
结构化编程
编辑栏图标的作用
-
fx的作用是寻找函数
-
百分比符号%是注释(右键也可以注解)
-
用双百分比符号%%可以进行段落分层
%%
段落一
%%
段落二
由此可以通过Run section按钮分开运行
-
在编辑器的最左栏,点击每一行的横线可以设置断点
-
右键智能缩进可以帮助规范函数书写的规律
流程控制指令
tic toc 是用来计算时间的代码
tic
program
toc
可以算出来执行program所需要的时间
逻辑运算符
比较常用的结构化程式语法
-
if else语法
if(condition1)
statement1
else(else if (condition2))
statement2
end
-
switch语法
switch expression
case value1
statement1
case value2
statement2
…
otherwise
Final statement
end
-
while语法
while condition
statement
end
-
break语法
与c一样
小技巧
-
“…”是换行号,matlab不会像c一样忽略换行号,需要换行的话要在换行的位置加上换行号
eg. A=[1 2 3 4 5 6 ;…
6 7 8 9 5 2]
-
ctrl+c可以在程序运行中直接结束
-
使用循环语句应尽量预先分配内存空间
Program1
tic
for ii = 1:2000
for jj = 1:2000
A(ii,jj) = ii + jj;
end
end
toc
程序用时4s
Program2
tic
A = zeros(2000, 2000); 预先为变量分配内存空间
for ii = 1:2000
for jj = 1:2000
A(ii,jj) = ii + jj;
end
end
toc
程序用时2s
对于程序一,没有预先为变量
A
分配内存,因此每当A
的形状发生改变时,都需要重新为A
分配内存地址,这花费了更多的时间.
自定义函数
-
以函数名.m的文件形式定义函数
在MATLAB文件中定义函数的格式如下:
function [输出变量名] = 函数名(输入变量名)
函数的文档
函数代码
- function是一个关键字,声明该文件中保存的是一个函数.
- 输入变量和输出变量是非必须的,函数既可以没有输入变量,也可以没有输出变量.
- 函数名应与**.m**文件名相同,且不包含特殊字符(最好不要有中文).
-
在自定义函数中的乘法与除法尽量用点乘(.*)与点除(./),这样的话如果以向量形式输入多个数据,自定义函数可以分别处理对应的数据而不会造成混乱。
-
在每个脚本的开头,应添加下述语句,清空工作区缓存以及之前程序运行的痕迹:
clear all % 清空工作区内存中的变量
close all % 关闭之前程序绘制的图像
clc % 清空之前程序在终端的输出
-
在运算和赋值语句后应添加分号
;
抑制输出在所有运算和赋值语句都应该添加分号
;
抑制输出,若需要向终端输出一个变量,应对其调用disp
方法. -
Matlab内置的函数参数
函数参数 意义 imputname 输入变量名列表 mfilename 函数源代码文件名 nargin 输入变量数 nargout 输出变量个数 varargin 可变长输入参数列表 varargout 可变长输出参数列表 eg. 计算长方体体积
function [volume]=pillar(Do,Di,height)
if nargin==2,
height=1;
end
volume=abs(Do.2-Di.2).heightpi/4; -
以函数句柄的形式定义函数
函数句柄 = @(输入变量) 输出变量
eg.
若有下列语句:[email protected](x)1/2.(x==-1/2)+1.(x>-1/28&x<1/2)+1.2.*(x==-1/2);
则相当于建立了一个函数文件:
% xsqual.m
function y=xsqual(x)
y=1/2.(x==-1/2)+1.(x>-1/28&x<1/2)+1.2.*(x==-1/2);
written by 杨宗宪
update on 6/10/2020