素用空格或逗号分开,行与行之间用分号分开,多个空格被视为一个空格.例如输入 a = [1 2 3; 4 5 6; 7 8 9] 或
a = [1,2,3; 4,5,6; 7,8,9] 都得到输出结果 a =
1 2 3 4 5 6 7 8 9
大矩阵可以分行输入,用回车键代替分号,这样的输入形式更接近我们平时使用的矩阵格式.例如
a = [1 2 3 4 5 6 7 8 9]
可以先将一个矩阵输入到Excel工作表,即先建立数据文件.然后打开“file”—“Import Data”菜单,即启动导入数据导航,按提示打开Excel工作表,将数据导入到MATLAB的工作空间中去.
矩阵也称为数组.只有一行或一列的数组称为一维数组,有多个行和多个列的数组称为二维数组.一维数组x的第i个元素记为x(i),二维数组a的第i行第j 列的元素记为a(i,j).
MATLAB采用双精度储存变量和数值计算,但能以多种格式输出数据.例如 x = [4/3 1.2345e–6]
则在几种常见的的格式下,输出结果分别为 format short
1.3333 0.0000 format short e
1.3333e+000 1.2345e–006 format short g
1.3333 1.2345e–006 format long
1.33333333333333 0.00000123450000 format long e
1.333333333333333e+000 1.234500000000000e–006 format long g
1.33333333333333 1.2345e–006 format rat
4/3 1/810045
应当先执行格式命令,然后再输出数据.MATLAB的缺省格式为format short.
要显示一个变量的内容,只需在命令窗口或程序中键入该变量的名字.例如在命令
31
窗口依次执行a=1/3 ,format long,a这三个命令,结果如下: >> a=1/3 a =
0.3333 >> format long >> a a =
0.33333333333333
若最大的元素大于1000或小于0.001,则显示short或long格式时会加上一个比例. 在命令后加上分号“;”,则屏幕上不会立即显示出结果,这在运算大的数据量时十分有用,如下命令产生100*100的魔方矩阵,但并不在屏幕上显示. A = magic(100);
如果一个命令很长,想另起一行接着输入命令,须要在末尾加上“...”,如: s = 1 – 1/2 + 1/3 – 1/4 + 1/5 – 1/6 + 1/7 ... – 1/8 + 1/9 – 1/10 + 1/11 – 1/12;
可用who或whos来察看当前工作空间中有哪些变量.若要从工作空间中删除所有的变量,用 clear
也可以根据需要一次删除若干个变量,例如要从工作空间中删除x1,x2两个变量,用 clear x1 x2
你可以将工作间保存为一个二进制的.mat文件,以备以后调用.命令 save june10
将工作空间保存到文件june10.mat.也可只保存工作间中的部分变量值,例如要保存变量x,y,z到文件june10.mat,使用命令 save june10 x y z 重载时只需输入 load june10
要想将变量a更名为b,可使用命令 b=a; clear a
MATLAB支持矩阵的加法、减法、乘法、转置、求逆等各种运算.命令a' 和inv(a)分别计算矩阵a的转置矩阵和逆矩阵.MATLAB的算数运算符为:
+ 加 - 减 * 乘 ^ 幂 / 左除 \\ 右除
对于两个标量a, b来说,a/b=b\\a=a÷b,而对于两个矩阵a, b来说, a/b=a*inv(b) b\\a=inv(b)*a
两个同维数组相加减,等于其对应元素相加减.一个数组与一个标量相加减,则等于数组的各元素分别与这个常数相加减.
用符号“. / ”表示两个数组的除法.若x, y是同维数组,则x ./ y表示x的元素分
32
别除以y的对应元素得到的数组. z=x ./ y
即z(i, j)=x(i, j)/y(i, j).x ./ y 与 y .\\ x 相等,都表示x除以y,但运算是在对应元素间进行的,与矩阵的除法是不同的.
矩阵的乘方用“^”符号表示,a^p的意思是a的p次方. 数组的乘方用 “.^” 符号表示.若x=[x1, x2, ?, xn], y=[y1, y2, ?, yn]是同维数组,则
z = x .^ y=[x1^y1, x2^y2, ?, xn^yn] 若c是一个标量,则
z = x .^ c=[x1^c, x2^c, ?, xn^c] 可以使用help命令寻求帮助.例如,键入help clear即可获得clear命令的帮助信息.类似地可以得到其他命令/函数的帮助信息.
8.2 分布函数及数字特征的计算
MATLAB提供了计算常见分布的分布函数和分位数的函数,见表11.4和表11.5.
概率分布函数y=F(x)的计算 函数名称 binocdf poisscdf unifcdf expcdf normcdf tcdf fcdf Chi2cdf 函数名称 binoinv poissinv unifinv expinv norminv tinv finv Chi2inv 函数说明 二项分布B(n,p)的分布函数F(x) 泊松分布P(λ)的分布函数F(x) 均匀分布U[a,b]的分布函数F(x) 指数分布E(λ) 的分布函数F(x) 正态分布N(μ, σ2)的分布函数F(x) t(n)分布的分布函数F(x) F(n1,n2)分布的分布函数F(x) χ2(n)分布的分布函数F(x) 表11.5 上侧α分位数x的计算
函数说明 二项分布B(n,p)的上侧α分位数 泊松分布P(λ)的上侧α分位数 均匀分布U[a,b]的上侧α分位数 指数分布E(λ) 的上侧α分位数 正态分布N(μ, σ2)的上侧α分位数 t(n)分布的上侧α分位数 F(n1,n2)分布的上侧α分位数 χ2(n)分布的上侧α分位数
调用格式 x=binoinv(1-α,n,p) x=poissinv(1-α, λ) x=unifinv(1-α,a,b) x=expinv(1-α, λ) x=norminv(1-α,μ, σ) x=tinv(1-α,n) x=finv(1-α,n1,n2) x=chi2inv(1-α,n) 调用格式 y=binocdf(x,n,p) y=poisscdf(x, λ) y=unifcdf(x,a,b) y=expcdf(x, λ) y=normcdf(x, μ, σ) y=tcdf(x,n) y=fcdf(x,n1,n2) y=chi2cdf(x,n) 8.2.1 函数mean()
语法:m=mean(x)
33
若x是单个向量(可以是行向量,也可以是列向量),则返回结果m是x的均值,若x是矩阵,则返回结果m是行向量,它包含x的每列数据的均值.即若
?x11?xx??21????xn1?x12?x1k?x22?x2k?? ?????xn2?xnk??1n则m?[x1,x2,?,xk],其中xj??xij(j?1,2,?,k).
ni?18.2.2 函数var()
语法:y=var(x)
若x是单个向量(可以是行向量,也可以是列向量),则返回结果y是x的方差,若x是矩阵,则返回结果y是行向量,它包含x的每列数据的方差.Var(x)运用n-1进行标准化处理,其中n为数据的长度.若要运用n进行标准化,可使用var(x,1)格式.
8.2.3 函数std()
语法:y=std(x)
std(x)=sqrt(var(x)),返回样本x的标准差.
8.2.4 函数cov()
语法:C=cov(x)
计算协方差矩阵.若x是单个向量(可以是行向量,也可以是列向量),则返回结果C是x的方差,若x是矩阵,则返回各列数据的协方差构成的协方差矩阵.cov(x)运用n-1进行标准化处理.
8.2.5 函数corrcoef()
语法:R=corrcoef(x)
返回一个相关系数矩阵R.矩阵R的元素R(i, j)与对应的协方差矩阵C=cov(x)的元素C(i, j)的关系为
R(i,j)?C(i,j) C(i,i)C(j,j) 使用MATLAB进行参数估计,与使用Excel进行参数估计的方法相似.
8.3 假设检验
1. 方差已知时单个正态总体均值的U检验
函数:ztest ()
语法:h = ztest (x, m, sigma)
h = ztest (x, m, sigma, alpha)
34
[h, sig, ci, zval] = ztest (x, m, sigma, alpha, tail)
h = ztest (x, m, sigma) 进行显著水平为0.05的U检验,以检验标准差为sigma的正态总体的均值是否等于m.即总体X~N(?,sigma2),样本x?(x1,x2,?,xn)来自总体X,欲检验假设
H0:??m.
返回参数h=0或1,如果h为1,则在显著性水平为0.05时拒绝H0;如果h为0,则在显著性水平为0.05时接受H0.
h = ztest (x, m, sigma, alpha) 给出了显著性水平控制参数alpha.
[h, sig, ci, zval] = ztest (x, m, sigma, alpha, tail) 可以通过制定tail的值来控制备择假设H1.tail的取值及意义为:
tail = 0表示备择假设为H1:??m,即进行双侧检验; tail =?1表示备择假设为H1:??m,即进行左边单侧检验; tail = 1表示备择假设为H1:??m,即进行右边单侧检验. 返回值sig是标准正态分布以统计量 U?称为临界概率或显著性概率.即
tail = 0时 sig?Pu?U; tail =?1时 sig?P?u?U?; tail = 1时 sig?P?u?U?.
其中u~N(0,1).当sig < alpha(等价于h=1)时拒绝H0,否则接受H0.
2. 方差未知时单个正态总体均值的t检验
函数:ttest ()
语法:h = ttest (x, m)
h = ttest (x, m, alpha)
[h, sig, ci] = ttest (x, m, alpha, tail)
h = ttest (x, m) 进行显著水平为0.05的t检验,以检验标准差未知时正态分布样本的
35
x?m 的观测值为分位数的尾部概率,
?/n??