一、Script writing
1. Fn + F5 快速执行matlab脚本
2. %% 分节符,可将matlab代码分节运行
3. 智能缩进,ctrl + A 选择程序,鼠标右键智能缩进
二、Structured programming
1.Relational Operators
~= 不等于;&& 与;| | 或
2. Flow Control
① if elseif else (函数rem()作用是取余数):
a = 3;
if rem(a,2) == 0
disp('even')
else
disp('odd')
end
elseif 和 else 是可选择的,只允许 if 条件,不符合就到end:
a = 3;
if rem(a,2) == 0
disp('even')
end
② switch 后面是根据数值判断所属情况:
input_num = 1;
switch input_num
case 1
disp('is 1');
case -1
disp('is -1');
case 0
disp('is 0');
otherwise
disp('other value');
end
③ while
(函数prod()作用是从1连乘到n,也是n的阶乘;1e100 = , e相当于以10为底):
n = 1;
while(prod(1:n) < 1e100)
n = n + 1;
end
④ for
for n = 1:10
a(n) = 2^n;
end
disp(a)
for循环中添加步长后
j = 0;
for n = 1:2:10
j=j+1;
a(j) = 2^n;
end
disp(a)
3. Pre-allocating Space to Variable
tic 时钟开启,toc 时钟结束,a = zeros(2000,2000) ;预分配空间,运行速度更快
tic
a = zeros(2000,2000) ;
for ii = 1:2000
for jj = 1:2000
a(ii,jj) = ii + jj ;
end
end
toc
4.tips
1. clear all 清除变量;close all 清楚画图;clc 清楚命令行页面
2. 换行号 ... ,ctrl + C 强制停止
三、User-defined function
函数文件名与函数名同名,变量之间用 .* ,以防 t 是多维度的
function y = freebody(x0,v0,t)
y = x0 + v0 .* t + 1/2 * 9.8 * t .* t;
end
function [a F] = acc(v2,v1,t2,t1,m)
a = (v2 - v1) ./ (t2 - t1);
F = m .* a;
end
1. Function Default Variables
nargin:用于检测用户输入变量个数的内建函数,输入变量个数少于函数需要时,设置的默认值补充
varargin:用于检测用户输入数组变量长度的内建函数,不够时,可通过设置的默认值补充
varargout:用于检测函数输出数组变量长度的内建函数,不够时,可通过设置的默认值补充
2.Function Handles
名叫 创建一个名叫 f 的函数,f 类似于函数变量,被创建后,可被任意调用
f = @(x) exp(-2 * x);
x = 0:0.1:2;
plot(x,f(x));