4.MATLAB的一维、二维数组的寻访
表6 子数组访问与赋值常用的相关指令格式
指令格式 A(r,c) A(r,:) A(:,c) A(:) A(i) A(r,c)=Sa A(:)=D(:) 指令功能 数组A中r指定行、c指定列之元素组成的子数组 数组A中r指定行对应的所有列之元素组成的子数组 数组A中c指定列对应的所有行之元素组成的子数组 数组A中各列元素首尾相连组成的“一维长列”子数组 \一维长列\子数组中的第i个元素 数组A中r指定行、c指定列之元素组成的子数组的赋值 数组全元素赋值,保持A的行宽、列长不变,A、D两组元素 总合应相同 5.MATLAB的基本运算
表7 两种运算指令形式和实质内涵的异同表
数组运算 指令 A.' A=s s+B s-B,B-s s.*A 矩阵运算 含义 指令 含义 非共轭转置 A’ 共轭转置 把标量s赋给A的每个元素 标量s分别与B元素之和 标量s分别与B元素之差 标量s分别与A元素之积 s*A 标量s分别与A每个元素之积 s./B,B.\\s 标量s分别被B的元素除 S*inv(B) B阵的逆乘s A.^n A的每个元素自乘n次 A^n A阵为方阵,自乘n次 A.^p 对A各元素分别求非整数幂 A^p 方阵A的非整数乘方 A+B 对应元素相加 A+B 矩阵相加 A-B 对应元素相减 A-B 矩阵相减 A.*B 对应元素相乘 A*B 内维相同矩阵相乘 A./B A的元素别B的对应元素除 A/B A右除B B.\\A 与上相同 B\\A A左除B exp(A) 以自然数e为底,分别以A的元expm(A) A的矩阵指数函数 素为指数,求幂 log(A) 对A的各元素求对数 logm(A) A的矩阵对数函数 sqrt(A) 对A的各元素求平方根 sqrtm(A) A的矩阵平方根函数 6.MATLAB的常用函数
4
表8 标准数组生成函数
指令 含义 指令 diag 产生对角形数组(对高维不适用) rand eye 产生单位数组(对高维不适用) randn magic 产生魔方数组(对高维不适用) zeros ones 产生全1数组 size() 表9 数组操作函数
指令 diag flipud fliplr reshape rot90 det rank 含义 提取对角线元素,或生成对角阵 以数组“水平中线”为对称轴,交换上下对称位置上的数组元素 以数组“垂直中线”为对称轴,交换左右对称位置上的数组元素 在总元素数不变的前提下,改变数组的“行数、列数” 矩阵逆时针旋转90度 方阵的行列式值 矩阵的秩 含义 产生均匀分布随机数组 产生正态分布随机数组 产生全0数组 返回指定矩阵的行数和列数 三、实验内容
1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)
2、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。
3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、 exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
注意:每一次M-file的修改后,都要存盘。
练习A:
(1) help rand,然后随机生成一个2×6的数组,观察command window、
command history和workspace等窗口的变化结果。 (2)学习使用clc、clear,了解其功能和作用。
(3)输入C=1:2:20,则C(i)表示什么?其中i=1,2,3,…,10。
(4)输入A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3],在命
令窗口中执行下列表达式,掌握其含义:
A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A (5)二维数组的创建和寻访,创建一个二维数组(4×8)A,查询数组
A第2行、第3列的元素,查询数组A第2行的所有元素,查询数组A
5
第6列的所有元素。
(6) 两种运算指令形式和实质内涵的比较。设有3个二维数组A2×4,B2×
4
,C2×2,写出所有由2个数组参与的合法的数组运算和矩阵指令。
(7) 学习使用表8列的常用函数(通过help方法) (8) 学习使用表9数组操作函数。
练习B
(10)用reshape指令生成下列矩阵,并取出方框内的数组元素。
a =
1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25
a(2,2:3) a(2:4,4)
ans = ans =
9 8 7
14 19
6
a(4:5,1:3) ans =
16 17 18 21 22 23
实验二 MATLAB数值及符号运算
一、 实验目的:
1、了解伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范德蒙等矩阵的创建,掌握矩阵的基本运算 2、掌握矩阵的数组运算 3、掌握多项式的基本运算 4、会求解代数方程
5、掌握创建符号表达式和矩阵的方法 6、掌握符号表达式的微分和积分运算
二、 实验基本知识:
1、创建矩阵的方法:直接输入法;用matlab函数创建矩阵 2、矩阵运算:矩阵加、减(+,-)运算
矩阵乘(?)运算 矩阵乘方
inv —— 矩阵求逆 det —— 行列式的值
7