Matlab(2)
一、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')
elsedisp('odd')
end
elseif 和 else 是可选择的,只允许 if 条件,不符合就到end:
a = 3;
if rem(a,2) == 0 disp('even')
end
② switch 后面是根据数值判断所属情况:
input_num = 1;
switch input_numcase 1disp('is 1');case -1disp('is -1');case 0disp('is 0');otherwisedisp('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:10a(n) = 2^n;
end
disp(a)for循环中添加步长后
j = 0;
for n = 1:2:10j=j+1;a(j) = 2^n;
end
disp(a)3. Pre-allocating Space to Variable
tic 时钟开启,toc 时钟结束,a = zeros(2000,2000) ;预分配空间,运行速度更快
tica = zeros(2000,2000) ;
for ii = 1:2000for jj = 1:2000a(ii,jj) = ii + jj ;end
end
toc4.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;
end1. 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));

