一:Script writing
1. 新建脚本
2.测试代码
for i=1:10
x=linspace(0,10,101);
plot(x,sin(x+i));
print(gcf,'-deps',strcat('plot',num2str(i),'.ps'));
end
3.保存.m文件并运行(F5)
4.注释:%
5.section:%%
6.调试
二:Structured programming
1.操作符
常规:>、<、>=、<=、==
# python :!= and or
2.与python不同,matlab不严格要求缩进
3.条件语句
-
if elseif else end
# python :if elif else
a=3;
if rem(a,2)==0
disp('a is even')
else
disp('a is odd')
end
-
switch case case otherwise end
input_num=1;
switch input_num
case -1
disp('-1')
case 0
disp('0')
case 1
disp('1')
otherwise
disp('other value')
end
4.循环语句
- while end
n=1;
while prod(1:n)<1e100
n=n+1;
end
% 1e100==1*10^100
% prod(1:n)==n!
disp(n)
%计算1+2+3+...+999
n=1;
sum1=0;
while n~=1000
sum1=sum1+n
n=n+1
end
sum1
注:matlab没有+=符号; python有+=没有++
- for end
for n=1:10
a(n)=2^n;
end
disp(a)
5.为变量预宣告位置,可以减少寻找位置的时间
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:2000
for jj=1:2000
A(ii,jj)=ii+jj;
end
end
toc
6.练习
1.把矩阵A复制到矩阵B
A=[0 -1 4;9 -14 25;-34 49 64];
B=zeros(3,3);
for ii=1:3
for jj=1:3
B(ii,jj)=A(ii,jj);
end
end
disp(B);
2.将矩阵B中的负数改为正数
for ii=1:9
if B(ii)<0
B(ii)=-B(ii);
end
end
disp(B);
7.tips
1.换行:… 2.终止运行中的脚本:ctrl+c
三:User-defined function
一个function相当于编写好的一个能够实现某个功能的.m脚本文件 1.查看某个function对应脚本文件的位置(文件名与方法名相同)
which('mean.m');
2.编写程式 function outputs=functionName(inputs)
- freebody(自由落体运动求位移)
function x=freebody(x0,v0,t)
x=x0+v0.*t+1/2*9.8*t.*t;
%注意,为了实现多组数据同时计算,即每个参数以向量的形式传入,这里需用点乘
%对应位置相乘
- acc(算物体加速度和力)
function [a F]=acc(v2,v1,t2,t1,m)
a=(v2-v1)./(t2-t1);
F=m.*a;
3.内置参数 nargin:传入参数的个数 nargout:传出参数的个数
4.function handle functionName=@(inputs)包含inputs的算术式 functionName指向后面这个function
f=@(x)exp(-2*x);
x=0:0.1:2;
plot(x,f(x));%画出e^-2x图像,x属于(0,2)
5.练习:已知华氏温度求摄氏温度
function C=F2C()
F=input('请输入华氏温度');
while isempty(F)==0
C=(F-32)*5/9;
disp(C);
F=input('请输入华氏温度');
end
|