MATLAB常用操作
产生一个a至b之间的随机矩阵,大小为1x5
a + (b - a) * rand(1,5)
产生一个均值为0,标准差(方差开根号)为2的正态分布的随机矩阵,大小为3x4
normrnd(0,2,3,4)
roundn—任意位置四舍五入
% 0个位 1十位 2百位 -1小数点后一位
a = 3.1415
roundn(a,-2) % ans = 3.1400
roundn(a,2) % ans = 0
a =31415
roundn(a,2) % ans = 31400
roundn(5.5,0) %6
roundn(5.5,1) %10
方差
A = [3 4 5 3 2 1];
var(A,1)
样本方差
A = [3 4 5 3 2 1];
var(A)
标准差
A = [3 4 5 3 2 1];
std(A)
数组元素求和
% 求数组每一列的和
sum(A)
% 求数组每一行的和
sum(A,2)
数组元素的乘积
% 求数组每一列元素相乘的结果
prod(A)
% 求数组每一行元素相乘的结果
prod(A,2)
按列归一化
每一列的每一个元素除以这一列的和
求矩阵列向量间的相关系数矩阵
r = corrcoef(X)
\param:**
X:这个矩阵X的每一列看做一个向量
\return:**
r: 相关系数矩阵。返回每两列之间的相关系数组成的矩阵,对称阵,对角为方差,一个向量的方差就是对向量的每个数求var。
注意使用时不必对设计阵做标准化处理。因为我们实际要求的是标准化变量的协方差矩阵,而就是原设计阵的相关系数矩阵。
层次分析法
RI
% 这里n=2时,一定是一致矩阵,所以CI = 0,我们为了避免分母为0,将这里的第二个元素改为了很接近0的正数
RI=[0 0.0001 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
求矩阵最大特征值
%% 求A的特征向量构成V的列向量,求矩阵A的全部特征值,构成对角阵D
[V,D] = eig(A);
Max_eig = max(max(D))
判断矩阵是否是正互反矩阵
function flag = isRM(A)
% 是否是正互反矩阵的标志变量
flag = 1;
if all(diag(A)==1)&&all(A(:)>0)
for i = 1:size(A,1)
for j = 1:size(A,2)
if(A(i,j)~=1/A(j,i))
flag = 0;
end
end
end
else
flag = 0;
end
if flag==1
disp('该矩阵是正互反矩阵');
else
disp('该矩阵不是正互反矩阵');
end
end
获取矩阵的对角元素
% 返回包含主对角线上向量A的元素的对角矩阵
diag(A)
创建对角矩阵
v = [2 1 -1 -2 -5];
% 使用 diag 创建一个包含 v 在主对角线上的元素的矩阵。
D = diag(v)
相关性模型
描述性统计
微分方程
求解析解
dsolve('y-Dy=2*x','x') % 这里要指定自变量为x
% 2*x + C1*exp(x) + 2 (这里的C1表示任意常数,有时候也会出现C2 C3等)
dsolve('y-Dy=2*x') % 如果不指定自变量的话,会默认自变量为t,x会看成一个常数
% 2*x + C2*exp(t)
%% 如果微分方程中还有其他的未知参数
dsolve('y-Dy=a*x','x') % a是一个未知的参数
%% 如果微分方程有已知条件 y(0)=3
dsolve('y-Dy=2*x','y(0)=3','x')
%% 如果微分方程已知多个条件
dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')
求数值解
ode45()
Tips
量纲不同的数据要进行标准化,消除不同指标量纲的影响
代码开始记得加clear,clc初始化
批量生成变量
% 批量生成变量 for i = 1:10 generateVar = strcat('w',num2str(i),'=',num2str(i)) eval(generateVar) end
- plot绘制多个图形的时候加上figure(n)标签,防止前面的被覆盖