MATLAB基本语法详细说明.docx
《MATLAB基本语法详细说明.docx》由会员分享,可在线阅读,更多相关《MATLAB基本语法详细说明.docx(13页珍藏版)》请在冰豆网上搜索。
MATLAB基本语法详细说明
Matlab语法
第一节基本数值计算
1.变量:
分为数值变量和字符变量
2.常量:
计算机中不变的量。
如i、j、pi、NaN(不确定)、Inf(无穷大)
3.字符变量:
将字符串作为变量。
有三种方法表示:
(1)用单引号''
(2)用函数sym('')
(3)用命令symbs
4.举例
x=2%将2赋给变量x
y=3;%有;表示在命令窗口不显示y的值
z=x^2-y%数值计算。
输出结果为1
f='sin(x)'%用单引号定义一个字符变量
g=sym('cos(y)')%用函数sym('')定义一个字符变量
symsab%用命令syms定义字符变量。
一般用于多符号变量的定义
u=2*a%字符计算。
输出结果为2*a
w=b^2-1%字符计算。
输出结果为b^2-1
fg=f+g%字符计算。
输出结果为sin(x)+cos(y)
uw=u*w%字符计算。
输出结果为2*a*(b^2-1)
u/w%字符计算。
输出结果为2*a/(b^2-1)
第二节矩阵构造及运算
Matlab中数据的结构形式就是一个矩阵。
如x=2是一个1×1的矩阵
1.矩阵的建立
(1)直接输入法。
(2)冒号法(1×N)。
(3)函数法(特殊矩阵)。
(4)矩阵的编辑(ArrayEditor)。
2.向量
向量是1×N的特殊矩阵,即只有一行或者一列,称为N维向量。
3.向量的点积与叉积
点积:
dot(A,B)
叉积:
cross(A,B)
4.举例:
x=[123;456;789]%[...],元素之间用空格,行之间用分号。
y=0:
0.1:
1%不用[...],初值、步长、终值间用冒号。
w=eye(3)%3阶单位矩阵。
u=rand(3)%3阶随机矩阵。
元素在0-1之间。
u1=rand(2,3)%2*3阶随机矩阵。
元素在0-1之间。
q=randn(3)%3阶随机矩阵。
元素在0-1之间。
元素符合正态分布。
q1=randn(2,3)%2*3阶随机矩阵。
元素在0-1之间。
元素符合正态分布。
s=magic(3)%魔方阵。
各行各列以及对角元素的和相等。
ss=zeros(3)%3阶全零阵。
uu=ones(3)%3阶全1阵。
5.矩阵的加、减、乘、除
(1)参与加、减运算的矩阵必须同维
(2)A/B时,A、B列数必须相同。
A\B时,A、B行数必须相同。
(3)矩阵左乘与右乘不同,左除与右除不同。
(A*B不等于B*A,A\B不等于A/B)。
(4)标量或函数与矩阵的运算等于该标量或函数与矩阵的每一个元素的运算。
6.对矩阵的操作
6.1对矩阵的元素操作:
(1)提取矩阵A的第n行第m列的元素,表示为A(n,m)
(2)提取矩阵A的第n行的所有元素,表示为A(n,:
)
(3)提取矩阵A的第m列的所有元素,表示为A(:
m)
(4)将矩阵A的第n行第m列的元素重新赋值b,表示为A(n,m)=b
(5)将矩阵A的第n行的所有元素重新赋值b,表示为A(n,:
)=b
(6)将矩阵A的第m列的所有元素重新赋值b,表示为A(:
m)=b
(7)将矩阵A的第n行第m列的元素删除,表示为A(n,m)=[]
(8)将矩阵A的第n行的所有元素删除,表示为A(n,:
)=[]
(9)将矩阵A的第m列的所有元素删除,表示为A(:
m)=[]
6.2矩阵的部分操作:
Fliplr(A)%矩阵左右翻转
Flipud(A)%矩阵上下翻转
Flipdim(A,m)%矩阵沿特定维(m)翻转
Rot90(A,k)%矩阵逆时针旋转k*90度
Tiag(A,k)%取矩阵对角线元素
Tril(A,k)%取矩阵的下三角部分
Triu(A,k)%取矩阵的上三角部分
注:
k可以是正、负整数,但绝对值一般不大于矩阵的维数。
6.3矩阵分析操作:
(1)方阵A的行列式值,可表达为det(A)
(2)矩阵A的秩,可表达为rank(A)
(3)行列式值不为堆的方阵A,求逆矩阵可表达为inv(A)
(4)矩阵A的转置阵,可表达为A'
(5)矩阵A的特征向量与特征值:
[V,D]=eig(A)。
其中V和D分别为A的特征向量和特征值
6.4矩阵的数组运算:
矩阵乘:
A*B。
A的列数与B的行数要相等。
矩阵的数组乘:
A.*B。
表示为A、B矩阵的对应元素一一相乘,即Aij*Bij。
A与B的维度要相同。
矩阵的数组除:
A./B或者A.\B
举例:
x=-10:
2:
10
y=sin(x)%correct
y=sin(x^2)%incorrect-Matrixxmustbesquare
y=sin(x.^2)%correct
6.5矩阵元素的关系运算与逻辑运算(与、或、非)
<小于
>大于
<=小于或等于
>=大于或等于
==等于
~=不等于
6.6矩阵的多维数组形式
(1)函数cat的使用
(2)B=cat(dim,a1,a2,...)
(3)意义:
将多个同维数组a1,a2,...构成一个高维数组B。
dim是高维数组B的维数。
它必须等于或大于a1,a2,...的阶次
举例:
a=[123;234;356]
b=a+10%新构成一个矩阵
a(:
:
2)=b%将新矩阵赋给a的第二层
a(:
:
1)%显示a的第一层
c=cat(3,a,b)%用函数来构成高维数组
6.7多项式及其运算式
多项式的创建:
(1)由1×N的N维向量
P=[a0a1a2…an]表示Pn=a0xn+a1xn-1+a2xn-2+..+an多项式。
(2)由函数poly(A)定义
如果A为二维或以上的矩阵,poly(A)表示由A的特征根确定的多项式。
如果A为一维矩阵
poly(A)表示由A的元素为多项式的根确定的多项式。
举例:
%方法一
p=[1-23]%直接给出多项式p
poly2sym(p)%给出p多项式的表达式
%方法二
a=[12;-24]
ps=poly(a)%计算a的特征根确定的多项式
poly2sym(ps)%给出ps多项式的表达式
%方法三
x=[-12]
px=poly(x)%以x的元素为多项式的根确定的多项式
poly2sym(px)%给出ps多项式的表达式
1.变量赋值
标量:
a=10
向量:
a=[1,3,5,6];a=1:
2:
9;a=[1762]
矩阵:
a=[123;456;789]
2.程序控制语句
(1)判断语句
if 表达式1 a=4;b=6;
命令 ifa>b
elseif 表达式2 'a大于b'
命令 elseifa
。
。
。
'a小于b'
else命令 elseif a==b
end ‘a等于b’
else
error('不可能的事情发生了')
end
(2)分支语句switch和case
switch(a)
case0
case1
case2
....
otherwise
end
a=5;
b=mod(5,3);
switch(b)
case0
模3为0
case 1
模3为1
case2
模3为2
otherwise
不可能
end
(3)循环语句
forn=3:
32
r(n)=n;
end
while条件
命令或函数
end
当条件不满足时,循环语句执行中间的命令或函数。
当条件满足时,跳出循环执行下面的命令。
n=1;
whilen<30
r(n)=n;
n=n+1;
end
(4)跳出循环语句
有时可能需要在循环体中的某个点跳出,这里通过continue和break实现
continue语句循环后,直接从该点跳到循环体的开始;
break语句执行后,直接从该点跳出循环体.
n=0;
whilen<30
n=n+1;
ifn==15
continue;
end
r(n)=n;
end
n
n=30
n=0;
whilen<30
n=n+1;
ifn==15
break;
end
r(n)=n;
end
n
n=15
1.循环语句for
for i=s1:
s3:
s2
循环语句组
end
解释:
首先给i赋值s1;然后,判断i是否介于s1与s2之间;如果是,则执行循环语句组,i=i+s3(否则,退出循环.);执行完毕后,继续下一次循环。
例:
求1到100的和,可以编程如下:
sum=0
for i=1:
1:
100
sum=sum+i
end
这个程序也可以用while语句编程。
注:
for循环可以通过break语句结束整个for循环.
2.循环语句while
例:
sum=0;i=1;
while(i<=100)
sum=sum+i;i=i+1;
end
3.if语句
if(条件)
语句
end
if(条件)
语句
else
语句
end
if(条件)
语句
elseif
语句
end
4.关系表达式:
=,>,<,>=,<=,==(精确等于)
5.逻辑表达式:
|(或),&(且)
6.[n,m]=size(A)(A为矩阵)
这样可以得到矩阵A的行和列数
n=length(A),可以得到向量A的分量个数;如果是矩阵,则得到矩阵A的行与列数这两个数字中的最大值。
7.!
后面接Dos命令可以调用运行一个dos程序。
8.常见函数:
poly():
为求矩阵的特征多项式的函数,得到的为特征多项式的各个系数。
如a=[1,0,0;0,2,0;0,0,3],则poly(a)=1 -6 11 -6。
相当于poly(a)=1入^3+(-6)入^2+11入+(-6)。
compan():
可以求矩阵的伴随矩阵.
sin()等三角函数。