二、结构化程式与自定函数
这章主要讲matlab编程以及与函数的结合。
Matlab程序语言,类似于C/C++
点击最左上角新建脚本,弹出编辑器窗口。
【条件、循环、判断语句以及逻辑符】
废话不多说,直接上代码,建议在自己软件中运行+理解
【if else】
if rem(a, 2) == 0
disp('a is even')
else
disp('a is odd')
end
【switch】
switch input_num
case -1
disp('negative 1');
case 0
disp('zero');
case 1
disp('positive 1');
otherwise
disp('other value');
end
【while】
n = 1;
while prod(1:n) < 1e100
n = n + 1;
end
【for】
for n=1:10
a(n)=2^n;
end
disp(a)
【练习】
计算1+2+3+…+999
【预分配的使用】,看例子 //tic……toc测量运算时间
tic
for ii = 1:2000
for jj = 1:2000
A(ii,jj) = ii + jj;
end
end
toc
tic
A = zeros(2000, 2000);
for ii = 1:size(A,1)
for jj = 1:size(A,2)
A(ii,jj) = ii + jj;
end
end
toc
【break】
x = 2; k = 0; error = inf;
error_threshold = 1e-32;
while error > error_threshold
if k > 100
break
end
x = x - sin(x)/cos(x); error = abs(x - pi);
k = k + 1;
end
matlab代码分为两种:脚本文件和函数文件
【Scripts vs. Functions】
脚本文件 | 函数文件 |
---|---|
1.多条命令的综合体 2.没有输入、输出变量 3.使用MATLAB基本工作空间 4.没有函数声明行 |
1.常用于扩充MATLAB函数库 2.可以包含输入、输出变量 3.运算中生成的所有变量都存放在函数工作空间 4.包含函数声明行,也就是function 5.脚本文件创建的每个变量都会保存到工作区,而函数文件只有输出结果才保存到工作区; |
打开一个函数文件看看:
>>edit(which('mean.m'))
绿色的是注释,剩下的就是代码了,function瞩目。
【练习】:完成以下函数:
【参考答案】
function x = freebody(x0,v0,t)
x = x0 + v0.*t + 1/2*9.8*t.*t;
function [a F] = acc(v2,v1,t2,t1,m)
a = (v2-v1)./(t2-t1);
F = m.*a;
[Acc Force] = acc(20,10,5,4,1)