当前位置:文档之家› matlab常用计算命令

matlab常用计算命令

Matlab常用计算命令(部分)
by sunny_疑似天人
1.多项式运算:
poly2sym函数,将给定的多项式系数向量转化为符号表达式,以降幂排序。

poly函数,得到矩阵的特征多项式(首项系数为1)的系数向量,然后也可以用poly2sym函数转化为多项式的符号表达式。

roots函数,得到方程的根,调用形式为roots(a),其中a 为多项式的系数;也可以直接调用roots([1 2 1])。

compan函数与eig函数,通过compan函数建立多项式的伴随矩阵再通过eig函数求伴随矩阵特征值以得到多项式的所有根。

效果与roots函数相同;同时这两个函数也可单独使用:
compan函数,建立多项式的伴随矩阵,如:a=[1 2 3 ];compan(a) ans = -2 -3
1 0
eig函数,求矩阵的特征值。

conv函数,求多项式的乘积,如:pd=conv(p,d),其中p和d均为多项式系数向量,得到的同样也是多项式的系数向量。

deconv函数,求多项式的除法。

polyder函数,求多项式的微分。

即求一阶导数,如果要求多项式的高阶微分,可以通过循环实现。

polyfit 函数,对数据拟合得到多项式,这个多项式即可大致代表数据变化规律。

例如:
x=0:pi/20:pi/2; y=sin(x);
p=polyfit(x,y,5) x1=0:pi/30:pi*2; y1=sin(x1);
y2=polyval(p,x1);
plot(x1,y1,'b-',x1,y2,'r*') legend('原曲线','拟合曲线') axis([0 7 -1.2 4])
p =
0.0057 0.0060 -0.1721 0.0021 0.9997 0.0000
1
2
3
4
5
6
7
-1-0.500.511.522.533.54
原曲线拟合曲线
2.向量及其运算
x=linspace(a,b,n),生成一个向量x ,其中a ,b 分别是生成矢量的第一个和最后一个元素,n 是采样总点数。

当n 缺省时默认生成100维的向量。

x=logspace(a,b,n) 。

生成数组的第一个元素值为10a,最后一个元素值为10b,n为采样总点数,缺省时,生成50维的行矢量。

rand('state',0),把均匀分布伪随机发生器置为初始状态。

x=rand(1,5) %产生(1×5)的均匀分布随机数组
x(3) %引用数组x的第三个元素
y=x([1 2 5]) %引用数组x的第一、二、五个元素
z=x(1:3) %引用数组x的前三个元素
w=x(3:end) %引用数组x的从第三个元素以后的元素
v=x(3:-1:1) %由数组x的前3个元素倒排构成的了数组
u=x(find(x>0.5)) %数组x中大于0.5的元素构成的子数组
t=x([1 2 3 4 4 3 2 1]) %重复引用数组x中的元素构成的数组
3.矩阵及其运算
zeros函数,zeros(N)生成N×N阶全0矩阵,zeros(M,N)生成M ×N阶全0矩阵,zeros(size(A))生成与A同阶的0矩阵。

当有大型矩阵需要得到时,可以提前给它赋0,得到存储空间,以便于节省计算时间。

eye函数,创建单位矩阵,用法与zeros函数类似;而eye(3,2)则表示生成三行两列的矩阵,即 1 0
0 1
0 0
hilb(N) 生成N×N阶Hilbert矩阵。

rand(M,N) 生成M×N阶均匀分布的随机阵。

rand('state',0) %把均匀分布伪随机发生器置为初始状态。

矩阵元素的抽取:
抽取行
A([1 3],:) %抽取矩阵A的第一行和第三行
B=A([3 1],:) %抽取矩阵A的第三行和第一行赋值给B
C=A(3:end,:) %抽取矩阵A的第三行至最后一行赋值给B
抽取列
rand('state',0) %把均匀分布伪随机发生器置为初始状态
A(:,3) %抽取矩阵A的第三列
A(:,[1 3]) %抽取矩阵A的第一列和第三列
B=A(:,[3 1]) %抽取矩阵A的第三列和第一列赋值给B
C=A(:,3:end) %抽取矩阵A的第三行至最后一行赋值给B
抽取块
B=A([1 2],[2 3]) %抽取矩阵A的第一、二行与第二、三列交叉的元素赋值给B
抽取对角线上元
V=diag(A) %抽取矩阵A的主对角线上的元素赋值给向量V,得到的向量V %是一个列矩阵
D=diag(V) %以向量V为对角线元素生成对角矩阵
D1=diag(V,1) %以列向量V为对角构成对角阵后再在第一列前和最后一行下添0构成多一阶的矩阵
% 例如:v=[1 1 1]';diag(v,1)
% ans =
% 0 1 0 0
% 0 0 1 0
% 0 0 0 1
% 0 0 0 0
D2=diag(V,-1)
% diag(v,-1)
% ans =
% 0 0 0 0
% 1 0 0 0
% 0 1 0 0
% 0 0 1 0
U=diag(A,1) %抽取矩阵A的主对角线上方第一条对角线的元素赋值给向量U
L=diag(A,-1) %抽取矩阵A的主对角线下方第一条对角线的元素赋值给向量L
抽取上三角和下三角部分
U=triu(A,1) %从矩阵A的主对角线上方第一条对角线开始抽取A的上三角部分
U=triu(A,-1) %从矩阵A的主对角线下方第一条对角线开始抽取A的上三角部分
L1=tril(A,1)
L2=tril(A,-1)
矩阵的基本运算:.+ .- .* ./. \ .^
inv函数,求矩阵的逆。

det函数,求矩阵的行列式。

expm (A)函数,求矩阵的指数,由Pade近似计算矩阵指数,也可以用函数exp m1,由Taylor级数计算矩阵指数用expm2,由特征值法计算矩阵指数expm3。

logm函数,是expm函数的逆运算。

log函数,求以e为底数的对数函数即自然对数;若用log函数直接处理矩阵,则可以认为是直接计算矩阵内各个数的自然对数。

Sqrtm与sqrt函数,求开方的运算,用法与上面logm、log类似。

B=reshape(A,m,n),将矩阵或向量A的元素依次返回到一个m×n 的矩阵B。

如果A中不是m×n个元素则返回错误,即A中元素个数必须等于m×n。

rot90(A,k) %将A逆时针方向旋转(90*k),k可以为正负,缺省时k=1。

fliplr(A) ,将A左右翻转
flipud(A),将A上下翻转
flipdim(A,dim),dim的值为1或2,当dim=1时,对行翻转,dim=2时,对列翻转。

D=[A B;C],表示将AB矩阵自然横向连接后再一起纵向连接C。

4. 利用plot函数绘制二维曲线图
如果作出含有虚部的函数的图像,一个变量与两个变量有较大区别:如果y为复数向量,则将以该向量的实部作为点的横坐标、虚部
作为点的纵坐标来绘制图形。

但须注意,当输入变量不止一个时,plot 函数将忽略变量的虚部而直接绘制各参数实部间的图形。

例如:
clear;clc;
x=0:0.05:8*pi;
y=(cos(x)+i*sin(x)).*exp(-0.05*x)+0.01*x; plot(y);
%同于plot(real(y),imag(y)); xlabel('Re(y)');ylabel('Im(y)');
-1
-0.8-0.6-0.4-0.2
00.20.40.60.81
-0.8-0.6-0.4-0.200.20.40.60.81Re(y)
I m (y )
这个图表现的是实部与虚部
plot(x,y);
5
10
15
20
25
30
-1-0.8-0.6-0.4-0.200.20.40.60.81
这个图只是表现出了实部的变化
调用函数plot 时,当两个输入变量x 和y 同为向量时,它们的维数必须相同,且必须同为行向量或列向量;当两个输入变量x 和y 是同阶的矩阵时,将按矩阵的行或列进行操作,其中,y 可以包含多个符合要求的向量,这时将在同一幅图中绘出所有图形。

例如:
clear;clc;
x=0:0.01:2*pi;
y=[sin(x'),cos(x')];
plot(x',y); %同于plot([x',x'],y);
1
2
3
4
5
6
7
-1-0.8-0.6-0.4-0.200.20.40.60.81
MATLAB语言中的图形设置选项表选项说明选项说明- 实线。


: 点线o 圆
-. 点划线x x符号
-- 虚线+ +号
y 黄色* 星号
m 紫色s 方形
c 青色
d 菱形
r 红色v 下三角
g 绿色^ 上三角
b 蓝色< 左三角
w 白色> 右三角
k 黑色p 正五边形。

相关主题