max():求向量或矩阵的最大元素。
min():求向量或矩阵的最小元素。
当参数为向量时,上述函数有两种调用格式:
(1)y=max(X):返回向量x的最大值存入y,如果X中包含复数元素,则按模取最大值。
(2)[y,k]=max(X):返回向量x的最大值存入y,最大值元素的序号存入k,如果X中包含复数元素,则按模取最大值。
例1求向量x的最大元素,其中x=[-43,72,9,16,23,47]。
x=[-43,72,9,16,23,47];
y=max(x)
y=72
[y,k]=max(x)
y=72
k=2
当参数为矩阵时,函数有三种调用格式:
(1)max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。
也就是说将矩阵的每一列中最大的元素记录下来,并生成一个行向量。
(2)[Y,U]=max(A):返回行向量Y和U,Y向量记录A中每列的最大值,U向量记录每列最大值元素的行号。
(3)max(A,[],dim):dim取1或2。dim取1时,该函数的功能和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。
dim就是维数(英文单词dimension 的缩写)。比如说dim=1就是按照行来算的,dim = 2就是列,dim=3 就是第三维。
思考:对矩阵按行求最大元素,仅使用第一种格式,能够做到吗?
例2 求矩阵A的每行及每列的最大元素,并求整个矩阵的最大元素。
A=
A=[13,-56,78;25,63,-235;78,25,563;1,0,-1];
max(A)
max(A,[],2)
max(max(A))
思考:用什么方法只调用一次max函数就能求得整个矩阵的最大值?
max((A:)‘)%先将矩阵A变成一个列向量,再将其转置。
平均值:指算术平均值,即每项数据之和除以项数。
中值:指在数据序列中其值的大小恰好处在中间的元素。如果数据个数为奇数,则取值为大小位于中间的元素;如果数据个数为偶数,则取中间两个元素的平均值。
在MATLAB中,求平均值和中值的函数分别为:
mean():求算术平均值。
median():求中值。
思考:有了平均值,为什么还要中值?
中值的优点是不受偏大或偏小数据的影响,很多情况下用它代表全体数据的一般水平更合适。
例3 某学生宿舍的5位同学月生活费如向量x所示,其中,小明同学家境一般,请问他应该按什么标准向父母主张生活费额度才较为合理。x=[1200,800,1500,1000,5000]
x=[1200,800,1500,1000,5000];
mean(x)
median(x)
sum():求和函数。
prod():求积函数。
设是一个向量,、是与等长的另外两个向量,并且
则分别称、为的累加和向量和累乘积向量。
在MATLAB中,求累加和与累乘积的函数分别为:
cumsum():累加和函数。
cumprod():累乘积函数。
例4 求向量X=[1,2,3,4,5,6,7,8,9,10]的积与累乘积。
X=[1,2,3,4,5,6,7,8,9,10];
y1=prod(X)
y2=cumprod(X)
标准差用于计算数据偏离平均数的距离的平均值,其计算公式为
MATLAB中计算标准差的函数为std(),其调用格式为:
(1)std(X):计算向量X的标准差。
(2)std(A):计算矩阵A的各列的标准差。
(3)std(A,flag,dim):flag取0或1,当flag=0时,按,所列公式计算样本标准方差;当flag=1时,按,所列公式计算总体标准方差。在默认情况下,flag=0,dim=1。
例5 生成满足正态分布的50000*4随机矩阵,用不同的形式求其各列之间的标准差。
x=randn(50000,4);
y1=std(x,0,1)
y2=std(x,1,1)
x1=x';
y3=std(x1,0,2);
y3'
y4=std(x1,1,2);
y4'
相关系数能够反映两组数据序列之间相互关系,其计算公式为
在MATLAB中,计算相关系数的函数为corrcoef(),其调用格式为:
(1)corrcoef(A):返回由矩阵A所形成的一个相关系数矩阵,其中,第i行第j列的元素表示原矩阵A中第i列和第j列的相关系数。
(2)corrcoef(X,Y):在这里,X,Y是向量,它们与corrcoef([x,Y])的作用一样,用于求X、Y向量之间的相关系数。
例6 某新产品上市,在上市之前,公司物流部门把新产品分配到不同地区的10个仓库进行销售。产品上市一个月后,公司要对各种不同的分配方案进行评估,以便在下一次新产品上市时进行更准确的分配,避免由于分配不当而产生的积压和断货。下表是相关数据,请判断那种分配方案最为合理。
仓库 | 1月销量 | 方案1 | 方案2 | 方案3 |
1 | 5032 | 6000 | 5100 | 5200 |
2 | 6532 | 6500 | 6600 | 5800 |
3 | 5500 | 7000 | 5400 | 4800 |
4 | 4530 | 4000 | 4300 | 4200 |
5 | 2300 | 2000 | 2200 | 2500 |
6 | 3254 | 3000 | 3500 | 3000 |
7 | 8095 | 9000 | 7800 | 8500 |
8 | 7530 | 8000 | 7000 | 7500 |
9 | 3841 | 3200 | 3500 | 3200 |
10 | 4500 | 5200 | 4800 | 4000 |
A=[5032,6000,5100,5200;6532,6500,6600,5800;
5500,7000,5400,4800;4530,4000,4300,4200;
2300,2000,2200,2500;3254,3000,3500,3000;
8095,9000,7800,8500;7530,8000,7000,7500;
3841,3200,3500,3200;4500,5200,4800,4000];
corrcoef(A)
在MATLAB中,排序函数为sort(),其调用格式为:
(1)sort(X):对向量X按升序排列。
(2)[Y,I]=sort(A,dim,mode),其中dim指明对A的列还是行进行排序。mode指明按升序还是降序排序,若取“ascend”,则按升序;若取“descend”,则按降序,默认为升序。输出参数中,Y是排序后的矩阵,而I记录Y中的元素在A中位置。
例7 对下列矩阵A=做各种排序。
A=[1,-8,5;4,12,6;13,7,-13];
sort(A)
sort(A,2,'descend')
[X,I]=sort(A)
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删