一. 基本矩阵指令
reshape(A,m,n);将A变成m*n型矩阵
rot90(A);将A逆时针旋转90度
fliplr(A);左右翻转
flipud(A);上下翻转
size(A);求矩阵A的尺寸大小,返回值为A的行数和列数,故前面的返回值应为两个。
另外,a=A(m,:);选出A的第m行 b=A(:,n);选出A的第n列
rank(A);求矩阵的秩
det(A);求矩阵行列式的值
trace(A);求矩阵的迹
inv(A);求A的逆矩阵
compan(A);求A的伴随矩阵
eig(A);求A的特征向量、特征值。所以前面的返回值应为两个。
二.微积分
1.求极限
syms x y z;
y=sin(x)/x;
z=1/x^2;
p1=limit(y,x,0) % 求x趋于0时p1的极限
p2=limit(z,x,inf) % 求x趋于无穷时p2的极限
2.求导
求z=sqrt(1+x^2)的一阶二阶三阶导数
clear;
clc;
syms x; %基本符号运算必须先声明符号变量
z=sqrt(1+x.^2);
z1=diff(z) %求z的一阶微分
z2=diff(z,2) %求z的二阶微分
z3=diff(z,3) %求z的三阶微分
注: 声明符号变量syms(可连续定义多个变量)和sym。
diff();用于求导数或者向量和矩阵的比较。
求函数的导数自然不必多说,见上面。但:
若X为向量,Y = diff(X)= [X(2)-X(1),X(3)-X(2),…,X(n)-X(n-1)].求前后两项之差.
若X为矩阵,Y = diff(X)= [X(2:n,:) - X(1:n-1,:)].求每列前后两项之差.
即diff参数为矩阵的时候,只是做差分
比如x=[1 2 5 8],那diff(x)=[1 3 3].也就是后一个数减去前一个数
%%%% 当x在[-3,3]区间,绘图
t=-3:0.1:3;
n=length(t);
z=sqrt(1+t.^2);
z1=diff(z); %求z的一阶微分
z2=diff(z,2); %求z的二阶微分
z3=diff(z,3); %求z的三阶微分
subplot(221);
plot(t,z,'r');
title('z=sqrt(1+x^2)');
grid;
subplot(222);
plot(t(1:n-1),z1,'r');
title('z1=diff(z)');
grid;
subplot(223);
plot(t(1:n-2),z2,'r');
title('z2=diff(z,2)');
grid;
subplot(224);
plot(t(1:n-3),z3,'r');
title('z3=diff(z,3)');
grid;
注:如果不改变plot中t的长度的话,很可能引起t的长度和z1等的不一致,matlab会报错。或者用另一种方法,在plot中改变z1的长度,即给他们进行矩阵补0.
3.求积分
求上面z的不定积分:
syms t;
z=sqrt(1+t.^2);
zz=int(z); %求不定积分
注:
int(函数f(x)) 计算不定积分
int(函数f(x),a,b) 计算定积分
三随机信号和特殊函数
1.均匀分布
2.泊松分布
3.伽玛函数和贝塔函数
统一见西安电子科技大学出版社《matlab仿真》徐明远等著