当前位置:
文档之家› 第六章MATLAB数据分析与功能函数
第六章MATLAB数据分析与功能函数
A=
8
1
6
3
5
7
4
9
2
>> [Y,I]=sort(A,2,'descend') Y=
861 753 942 I= 132 321 213
10 点击图形窗口的Tool\Data Statistics,对数据进行分析
6.1.2 用于场论的数据分析函数
1.两个向量点积运算dot 2. 两个向量叉积运算cross
Y=std(A,flag,dim) 其中dim取1或2。当dim=1时,求各列元素的标准方差; 当dim=2时,则求各行元素的标准方差。flag取0或1,当 flag=0时,按S1所列公式计算标准方差,当flag=1时,按 S2所列公式计算标准方差。缺省flag=0,dim=1。
A=
1 1 1 1
350
300
250
200
150
100
50
0
-5 -4 -3 -2 -1
0
1
2
3
4
5
6.1.4.相关分析的函数 1 协方差、相关系数
X,Y是n维向量
协方差 矩阵
S
cxx
c
yx
cxy
c
yy
其中 cxx
s
2 x
即X标准方差的平方
n
xi xyi y
cxy cyx i1
>> A=magic(4)
A= 16 2 5 11 97 4 14
3 13 10 8 6 12 15 1
>> [M,L]=max(A,[],1)
M= 16
L= 1
14 15 13 441
>> [M,L]=max(A,[],2)
M=
16 11 12 15
L=
1 2 4 3
c.两个向量或矩阵对应元素的比较
2 最小值
求最小值函数是min,其用法和max完全相同。
3 平均值
求数据序列平均值的函数是mean。 mean(X):返回向量X的算术平均值。 mean(A):返回一个行向量,其第i个元素是矩阵A的第i列的算术平均值。 mean(A,dim):当dim为1时,该函数等同于mean(A);当dim为2时,返回 一 个列向量,其第i个元素是A的第i行的算术平均值。 mean(mean(A)):求矩阵A所有元素的平均值。
设u是m维向量,v是n维向量,卷积w共有m+n-1项,其
中第k (k=i+j)项
min( k ,m )
u(k ) u( j)v(k 1 j)
j max(1,k 1n )
例 m=2,n=3时候
X=
3
4
w1 u 1 v 1
Y=
6
7
5
w2 u 1 v 2 u 2 v 1 >> conv(X,Y)
60
40
20
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
randn 250
200
150
100
50
0
-4
-3
-2
-1
0
1
2
3
4
。 hist(X,n) 产生分割数为N份的直方图,默认值为10
x = -4:0.1:4; y = randn(10000,1); hist(y,x)
450
400
>> x1=[11 22 33 44] (向量必须3维)
>> x2=[1,2,3,4]
>> x1=[11 22 33];
>> a=dot(x1,x2) a=
330 >> sum(x1.*x2) ans =
>> x2=[1 2 3] >> x3=cross(x1,x2) x3 =
000
330
a b axbx ayby azbz
,如果X中包含复数元素,则按模取最大值。
x=[-43 72 9 16 23 47];
y=max(x)
%求向量x中的最大值
[y,l]=max(x) %求向量x中的最大值及其该元素的位置
y=
72
l=
2
b.求矩阵行或列的最大值
求矩阵A的最大值的函数有3种调用格式,分别是: Y=max(A):返回一个行向量,向量的第i个元素是矩
A=
1234 1234 1234 1234
>> mean(A) ans =
1234 >> mean(mean(A)) ans =
2.5000
>> mean(A,2)
ans =
2.5000 2.5000 2.5000 2.5000
4 中值
中值和平均值没有必然的关系,中值是将所给的一组数从小到大或从大到 小排列, 奇数个数的话取中间的数字,偶数个数的话取中间两个数的平均数; 平均值就是把这组数相加,然后除以这组数的个数。 求数据序列中值的函数是 median。两个函数的调用格式为: median(X):返回向量X的中值。 median(A):返回一个行向量,其第i个元素是A的第i列的中值。 median(A,dim):当dim为1时,该函数等同于median(A);当dim为2时,返 回一个列向量,其第i个元素是A的第i行的中值。
n 1
相关系数矩阵
R(i, j) C(i, j) C(i,i)C( j, j)
X=
1234
Y=
7658
Format rat
>> cov(X,Y) % 等价cov([x’,y’])
ans =
5/3
1/3
1/3
5/3
>> corrcoef(X,Y)
ans =
1
1/5
1/5
1
2 卷积 w u v
A=
>> median(A,1)
>> median(A,2)
1234 1234
ans =
ans =
5 标准方差
在MATLAB中,提供了计算数据序列的标准方差的 函数std。
对于向量X,std(X)返回一个标准方差。对于矩阵A ,std(A)返回一个行向量,它的各个元素便是矩阵A各列 或各行的标准方差。std函数的一般调用格式为:
w3 u 1 v 3 u 2 v 2 ans =
w4 u 2 v 3
18
45Leabharlann 43206.2 多项式运算
MATLAB 采用行向量来表示多项式,将多项式的系数按降幂次序存
放在行向量中。例如多项式P( x) a0xn a1xn1 an1x an
i j k
a
b
ax
ay
az
bx by bz
23
6.1.3 随机分布矩阵和直方图
rand(m,n) 产生0-1之间均匀分布的随机矩阵,平均值为0.5,标准偏差0.2887 randn(m,n)产生正态分布的随机矩阵,平均值为0,标准偏差1。
rand 120
100
80
函数max还能对两个同型的向量或矩阵进行比较,调用 格式为: U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与 A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较 大者。 U=max(A,n):n是一个标量,结果U是与A同型的向量或 矩阵,U的每个元素等于A对应元素和n中的较大者。
据点的平均值作为数据点求和。 trapz(A,dim):当dim为1时,同trapz(A);当dim为2时,返回一个
列向量,其第i个元素是以A的第i行相邻两个数据点的平均值作为数 据点求和。 cumtrapz(A):返回一个矩阵,第一行为零,第i行是A的第i行和第 i-1行数据点的平均作为数据点求累加和。 cumtrapz(A,dim):当dim为1时,同cumtrapz(A);当dim为2时, 第一列为零,第i列是A的第i列和第i-1列数据点的平均作为数据点求 累加和。
数据序列求和与求积的函数是sum和prod,其使用方法类似。设X是 一个向量,A是一个矩阵,函数的调用格式为: sum(X):返回向量X各元素的和。 sum(A):返回一个行向量,其第i个元素是A第i列的元素和。 sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一 个列向量,其第i个元素是A的第i行的各元素之和。 cumsum(X):返回向量X累加和向量。 cumsum(A):返回一个矩阵,其第i列是A的第i列的累加和向量。 cumsum(A,dim):当dim为1时,该函数等同于cumsum(A);当dim为2时 ,返回一个矩阵,其第i行是A的第i行的累加和向量。
6.1 数据分析 6.2 多项式运算 6.3 函数功能和数值分析函数库
6.1 数据分析
6.1.1 基本的数据分析函数
1 最大值
a. 求向量的最大值
求一个向量X的最大值的函数max有两种调用格式,分别是:
y=max(X):返回向量X的最大值存入y,如果X中包含复数元素
,则按模取最大值。
[y,I]=max(X):返回向量X的最大值存入y,最大值的序号存入I
7. 求积与累乘积 (和前面所有的数相乘放在现在的位置)
prod(X):返回向量X各元素的乘积。 prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。 prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个 列向量,其第i个元素是A的第i行的各元素乘积。 cumprod(X):返回向量X累乘积向量。 cumprod(A):返回一个矩阵,其第i列是A的第i列的累乘积向量。 cumprod(A,dim):当dim为1时,该函数等同于cumprod(A);当dim为2时, 返回一个向量,其第i行是A的第i行的累乘积向量。