实验1 矩阵的建立和基本运算 一、实验目的
熟悉矩阵(matrix laboratory)初等变换的方法以及矩阵运算的各种命令. 二、实验内容与要求
1. 启动与退出
2. 数、数组、矩阵的输入 (1)数的输入
>>a=5 >>b=2-5i
注意:在行尾加“;”,该行结果不显示;标点符号一定要在英文状态下输入!
(2)数组的输入
>>b=[1,3,5,7,9,11] >>c=1:2:11
>>d=linspace(1,11 ,6)
问题: 若b为在0~2π(π用pi表示)之间均匀分布的22个数据,
c=(1.3,2.5,7.6,2,-3),d=(23,20,17,14,11,8,5,2),各用何种方法输入较简单? (3)矩阵的输入
>>A=[2,3,5;1,3,5;6,9,4] %行之间要用分号隔开 A= 2 3 5
1 3 5 6 9 4
>>m=input('请输入初始量,m='); 请输入初始量,m=
问题:输入A(2,3),结果如何?输入A(7)又如何?
注意:变量名开头必须是英文字母,变量名对字母大小写是区分的. 3. 矩阵大小的测试和定位
numel(Number of elements in an array or subscripted array expression.)
>>A=[3,5,6;2,5,8;3,5,9;3,7,9]
>>d=numel(A) %测试定矩阵A的元素数,5.x版本没有此命令 >>[n,m] = size(A) %测试A的行(n)、列(m)数 >>[i,j] = find(A>3) %找出A中大于3的元素的行列数
注意:对一个数组可用n = length(A),A若是矩阵,n给出A的行、列数的最
大值. 4. 矩阵的块操作
>>A(2,:) %取出A的第2行的所有元素 >>A([1,3],:) %取出A的第1,3行的所有元素 >>A(2:3,1:2) %取出A的2,3行与1,2列交叉的元素 >>A([1,3],:) = A([3,1],:) %将A的1行和3行互换
问题:如何将A的2,3列互换?
>>A(2,:) = 4 %将A的第2行的所有元素用4取代 >>A(find(A==3))=-3 %将A中等于3所有元素换为-3 >>A(2,:) = [] %删除A的第2行
>>reshape(A,2,3) %返回以A的元素重新构造的2×3维矩阵
>>[A(1:3,2:3),A(2:4,1:2);A,A(:,2)] %由小矩阵构造大矩阵。
5. 矩阵的翻转操作
flip(抛、弹、翻转),rotation(旋转) >>flipud(A) %A进行上下翻转 >>fliplr(A) %A进行左右翻转 >>rot90(A) %A逆时针旋转90°
6. 特殊矩阵的产生
random(随意, 任意),randn(Normally distributed random numbers.)randperm(Random permutation.(排列))
>>A = eye(n) %产生n维单位矩阵 >>A = ones(n,m) %产生n×m维1矩阵 >>A = zeros(n,m) %产生n×m维0矩阵
>>A = rand(n,m) %产生n×m维随机矩阵(元素在0~1之间)
问题:产生一个在区间[10,20]内均匀分布的4阶随机矩阵.
>> randn(m,n) %产生m×n正态分布随机矩阵 >> randperm(n) %产生1~n之间整数的随机排列
【例】
>> randperm(6) ans =
3 2 1 5 4 6
7. 数的运算
sqrt(square root),exp(exponent),log(logarithm) >>4+2