杭州电子科大,MATLAB经典教程。第二章 矩阵与数组
MATLAB基础应用案例教程第二章
上一页 下一页 返回
• 结果:
2.2 矩阵表示
上一页 下一页 返回
2.2 矩阵表示
• 2. 2. 4 稀疏矩阵
• 若矩阵中非零元素的个数远远小于矩阵元素的总数,且非零元素的分 布没有规律, 则称该矩阵为稀疏矩阵。
• 1 创建稀疏矩阵 • 语法格式:
• 稀疏矩阵的存储特点: 所占内存少,运算速度快。
上一页
返回
2.2 矩阵表示
• 2. 2. 1 矩阵的建立方法
• 【例 2 - 2】 输入下列矩阵
下一页 返回
2.2 矩阵表示
• 2. 2. 2 向量的建立方法
• MATLAB 中的每个数都是 1 × 1 的矩阵,数组或向量就是 1 × n 或 n × 1 的矩阵。 数组、向量和二维矩阵表示在本质上没有 任何区别,它们的维数都是 2,一切都是以矩阵形式保存的。
s, 它只保留最新值。
上一页 下一页 返回
2.1 变量的使用
• 2. 1. 4 全局变量
• 全局变量的作用域在整个 MATLAB 中有效,所有函数都能对它 进行存取和修改。 若在函数文件中声明变量为局部变量,则只在本 函数内有效,在该函数返回后,这些变量会自动在 MATLAB 工 作间中清除,这与文本文件是不同的。
n = max( j) ,在 S 中零元素被移除前计算最大值,[ i j s] 中的其中一行可能为 [ m n 0] 。 • (4) sparse([] 。[] 。[] 。m。n。0) 生成 m × n 所有元素 都是 0 的稀疏矩阵。 • (5) 当构造矩阵比较大,而非零元素位置又比较有规律时,可以考虑 用 sparse 函数。先构造 i、 j、 s,再自动生成矩阵。
上一页 下一页 返回
第2章-matlab矩阵与数组分解教案资料
%生成m×n阶正态X6分0=.6布06随8 机0.阵7621 0.8214 0.7919
X6= randn(m,n)
-0.4326 0.2877 1.1892 0.1746
-1.6656 -1.1465 -0.0376 -0.1867
0.1253 1.1909 0.3273 0.7258
14 2020/6/28
2. 利用文件建立矩阵
对于比较大且比较复杂的矩阵,可以为它专门 建立一个M文件。
例: 利用M文件建立A矩阵。
(1)启动有关编辑程序或MATLAB文本编辑器,并 输入待建矩阵.
(2)把输入的内容存盘(设文件名为mymatrix.m)。
(3)运行该M文件,就会自动建立一个名为A的矩阵, 可供以后使用。
3 2020/6/28
1. 直接输入法
将矩阵的元素用方括号括起来,按矩阵行的顺序 输入各元素,同一行的各元素之间用空格或逗号分隔, 不同行的元素之间用分号分隔。
>>A = [16 3 2 13; 5 10 11 8; … 9 6 7 12; 4 15 14 1]
A= 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
ans = 3
15 2020/6/28
此外,常用的函数还有reshape(A,m,n),它在 矩阵元素保持不变的前提下,将矩阵A重新排 成m×n的二维矩阵,其元素是以列的方式从A 中获得, A必须包含m×n个元素。
9 2020/6/28
(二) 利用其它文本编辑器: (文本或二进制格式)
(1) 编辑一个文本文件: 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0
Matlab实验报告(二)矩阵和数组操作
Matlab实验报告(二)矩阵和数组操作一、实验目的1.掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等。
2.学习矩阵和数组的加减运算与乘法。
3.掌握对数组中元素的寻访与赋值,会对数组进行一般的操作。
二、预备知识1.常用的产生特殊矩阵的函数?eye(m,n) 单位阵?rand(m,n) 随机矩阵?randn(m,n) 正态分布的随机矩阵?zeros(m,n) 零矩阵?ones(m,n) 全部元素都为1的矩阵?compan(A) 矩阵A的伴随矩阵?bankel(m,n) n维Hankel矩阵?invhilb(n) n维逆Hilbert矩阵?magic(n) n维Magic矩阵?toeplitz(m,n) Toeplitz矩阵?wilkinson(n) n维Wilkinson特征值测试矩阵?handamard(n) n 维Handamard矩阵?hilb(n) n维Hilbert矩阵?kron(A,B) Kronecker 张量积?pascal(n) n维Pascal矩阵?vander(A) 由矩阵A产生Vandermonde矩阵2.通过矩阵的结构变换,获得新矩阵表2 矩阵结构变化产生新矩阵L=tril(A) L=tril(A,k) 0 U=triu(A) U主对角线及以上的元素取矩阵A的元素,其余为0 L主对角线及以下元素取矩阵A 的元素,其余为0 L及第k条对角线及以下元素取矩阵A的元素,其余为U=triu(A,k) 0 B=rot90(A) B=rot90(A,k) B=fliplr(A) B=flipud(A) B=reshape(A,m,n) U 第k条对角线及以上的元素取矩阵A的元素,其余为矩阵A逆时针旋转90°得到B 矩阵A逆时针旋转k*90°得到B 矩阵A左右翻转得到B 矩阵A上下翻转得到B 将矩阵A的元素重新排列,得到m*n的新矩阵(m*n就等于A的行列式之积。
MATLAB课件2 矩阵与数组
2.用数组编辑器创建和修改矩阵: 1)只要是赋过值的变量,不管是否在屏幕 上显示过,都存储在工作空间中,以后可 随时显示、调用、修改。 2)还可以用工作空间中的数组编辑器 (Array Editor)来编辑和修改变量(双击 变量名即可打开)。 3)变量名尽可能不要重复,否则会覆盖。 不要与常量重名。
a=[1 2 3;4 5 6]
x=[2 pi/2;sqrt(3) 3+5i]
2.2.1 创建矩阵的方法
指令中的符号:
matlab允许多条语句在同一行出现。
“,”和“;”可作为指令间的分隔 符,
分号如果出现在指令后,屏幕上将不
显示结果。
当一个指令或矩阵太长时,可用•••续
行
2.2.1 创建矩阵的方法
2.2.1 创建矩阵的方法
3.用matlab函数创建矩阵:
空阵[ ] — matlab允许输入空阵,当一项
操作无结果时,返回空阵。
rand(m,n)— 随机矩阵,数字范围(0,1)
eye(m,n)— 单位矩阵,方阵。
zeros(m,n)— 全部元素都为0的矩阵 ones(m,n) — 全部元素都为1的矩阵
间的线性等间距的数,间隔(10-1)/(5-1)
%产生10^0到10^2
2.2.1 创建矩阵的方法
矩阵连接,如:
A=[1:6]; B=[1;2;3;4;6;7]’;
c=[A B];C=[A;B]
创建列向量
用转置符号’实现:如:A=[1:6]’ 直接输入元素:B=[1;2;3;4]
练习1
例:
x1+2x2=1
2x1+3x2=2 3x1+4x2=3
MATLAB矩阵与数组:定义、用法及应用案例
MATLAB 矩阵与数组:定义、用法及应用案例MATLAB 矩阵与数组:定义、用法及应用案例 .................................................................... 目录11.2. 3. 数组(Array )..........................................................................................................21.1 数组的定义........................................................................................................21.2 数组的基本用法................................................................................................2数组的逻辑运算.......................................................................................................34.4.3 矩阵运算和操作................................................................................................64.4 矩阵索引和切片................................................................................................64.5 应用案例............................................................................................................三维数组...................................................................................................................4矩阵(Matrix )........................................................................................................64.1 矩阵的定义........................................................................................................64.2 矩阵的创建........................................................................................................675.数组和矩阵的区别...................................................................................................75.1 维度....................................................................................................................75.2 操作....................................................................................................................75.3 创建....................................................................................................................85.4 索引和切片........................................................................................................85.5 应用.. (8)在MATLAB中,矩阵和数组是基础的数据结构,用于存储和处理多维数值数据。
Matlab 基础知识——矩阵操作及运算(矩阵、数组区别)
看论文时,经常看到矩阵,但在记忆里又看到数组。
那么问题来了,矩阵和数组分别是什么?二者有什么区别?看论文时,经常看到矩阵,但在记忆里又看到数组。
那么问题来了,矩阵和数组分别是什么?二者有什么区别?在数学上,定义m×n个数(i=1, 2…, m ; j=1, 2,…n)排成的m行n列的数表示为m行n列的矩阵,并且用大写加粗黑色字母表示。
只有一行的矩阵:,也称之为行向量;只有一列的矩阵,也称之为列向量。
矩阵最早来自于方程组的系数即常数所构成的方阵,这一个概念有19世纪英国数学家凯利首先提出。
数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。
这些按序排列的同类数据元素的集合称之为数组。
在Matlab中,一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
因此按数组元素的类型不同,数组又可以分为数值数组、字符数组、单元数组、结构数组等各种类别。
看完上面的内容,矩阵和数组的区别似乎懂了一点。
矩阵和数组在Matlab中存在很多方面的区别:(1)矩阵是数学的概念,而数组是计算机程序设计领域的概念;(2)作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则。
而数组运算是Matlab软件定义的规则,其目的是为了使数据管理方便,操作简单,命令形式自然,执行计算有效。
二者联系主要体现在:在Matlab中,矩阵是以数组的形式存在的。
因此,一维数组相当于向量;二维数组相当于矩阵。
所以矩阵是数组的子集。
对矩阵的基本操作,主要有矩阵的构建、矩阵维度和矩阵大小的改变、矩阵的索引、矩阵的属性信息的获取、矩阵结构的改变等。
对于这些操作,Matlab中都有固定的指令或者相应的库函数与之相对应。
在程序用到的时候,每次都要上网查,网上的很散。
这里,我对我经常用的做了总结。
以后用到可以查阅。
1、矩阵下表引用下面将常用的几个举例说明:例如:A=[1 2 3 4 5;12 12 14 56 657;23 46 34 67 56 ];(1)将二维矩阵A转化成一维矩阵(列向量):Matlab 默认将其转化成列向量,需要行向量转置即可。
matlab第二章
》a=[1 2 3;4 5 6]' 》a=[1 2 3;4 5 6].'
a=
a=
14
14
25
25
36
36
》b=[1+2i 2-7i]' b=
1.0000 - 2.0000i 2.0000 + 7.0000i 》b=[1+2i 2-7i].' b= 1.0000 + 2.0000i 2.0000 - 7.0000i
x= 2.00 3.00
》 x=a\b x= 2.00 3.00
考虑: x=b/a是否可以?
Error!Matrix dimensions must agree.
(2)超定方程组的解
方程 ax=b ,n>m时,不存在唯一解。
x=a\b
例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3
1 X 1 2 X 2
可以用V*D*inv(V)=A来验证结果
3、线性方程组求解
Matlab中有两种除运算左除和右除。 对于方程ax=b,a 为an×m矩阵,有三种情况: 当n=m时,此方程成为“恰定”方程 当n>m时,此方程成为“超定”方程 当n<m时,此方程成为“欠定”方程
matlab定义的除运算可以很方便地解上述三种方程
2. 四则运算:+ 加法;- 减法;* 乘法;
\ 左除;/ 右除;^ 幂;
● a\b运算等效于求a*x=b的解; 而a/b等效于求x*b=a的解。
matlab课件--第2讲-数组和矩阵
键入: A=[1 2 3;4 5 6;7 8 9];
C=A(1:2, [1 3]) %A的第1,2行,
输出:C=
%A的第1,3列
13
46
还有A(1:2:3, 3:-1:1)
第34页,共66页。
Matlab 软件实习
5) 矩阵的拼接
将几个矩阵接在一起称为拼接,左右拼接 行数要相同,上下拼接列数要相同。
ans = 0.9501 0.2311 0.6068 0.4860 0.8913 1.05
>>x(find(x>0.5)) ans =
0.9501 0.6068 0.8913
>>x([1 2 3 4 4 3 2 1]) ans =
Columns 1 through 8
0.9501 0.2311 0.6068 0.2311 0.9501
2)利用M文件建立矩阵
对于比较大且比较复杂的矩阵,可以为它专门建立一个M 文件.下面通过一个简单例子来说明如何利用M文件创建矩阵.
例 利用M文件建立MYMAT矩阵. (1) 启动有关编辑程序或MATLAB文本编辑器,并输入待 建矩阵;
(2) 把输入的内容以纯文本方式存盘(设文件名为 mymatrix.m). (3) 在MATLAB命令窗口中输入mymatrix,即运行该M 文件,就会自动建立一个名为MYMAT的矩阵,可供以后 使用.
c. 对角矩阵
命令
运行结果
diag(A)
生成一个由矩阵A主对角线元素组 成的列向量。主对角线总是从矩阵 左上角开始。对于方阵来说结束于 矩阵的右下角。
diag(x)
生成一个n维的方阵,它的主对角 线元素取自向量x,其余为0。
diag素组成的列向量。k=0为主对角线; k<0为下第k对角线; k>0为上第k 对角线。
MATLAB程序设计与教程课件 第2章 1MATLAB矩阵及其运算
% 【例2-11】数组a为[1 2 3],数组b为[4 5 6], 求数组的幂c=a.^b. a=[1 2 3]; b=[4 5 6]; c=a.^b % 【例2-12】数组a为[1 2 3],求数组的幂c=a.^2. a=[1 2 3]; c=a.^2
% 【例2-13】数组a为[1 2 3],求数组的幂运算 c=2.^a. a=[1 2 3]; c=2.^a % 【例2-14】矩阵a为[1 2 3;4 5 6;7 8 9],计算a 的转置. a=[1 2 3;4 5 6;7 8 9]; c=a'
练习
2.2.1 变量的命名
MATLAB的变量命名规则如下: 变量名区分字母的大小写.例如,"a"和"A"是 不同的变量. 变量名不能超过63个字符,第63个字符后的字符 被忽略. 变量名必须以字母开头,变量名的组成可以是任 意字母,数字或者下划线,但不能含有空格和标点 符号(如,.%等). 不合法例子:1 1 a/b a-1 变量1 关键字(如if,while等)不能作为变量名. MATLAB提供的标准函数名以及命令名必须用小运算符前面加"." , 两矩阵进行点运算是指它们的对应元素进行相 关运算,要求两矩阵的维参数相同. 格式如下: A.*B %数组A和数组B对应元素相乘 A./B %数组A除以数组B的对应元素 A.\B %数组B除以数组A的对应元素 A.^B %数组A和数组B对应元素的乘方
(三)利用MATLAB函数建立矩阵
几个产生特殊矩阵的函数: zeros 产生全0矩阵(零矩阵) ones 产生全1矩阵 (么矩阵) eye 产生单位矩阵 rand 产生0~1间均匀分布的随机矩阵 randn 产生0~1间正态分布的随机矩阵
这几个函数的调用格式相似,下面以产生零矩阵的zeros 函数为例进行说明.其调用格式是: zeros(m) 产生m×m零矩阵 zeros(m,n) 产生m×n零矩阵. zeros(size(A)) 产生与矩阵A同样大小的零矩阵 相关的函数有: size(A) 返回包含2个元素的向量,分别是A的行数,列 数 length(A) 给出行数和列数中的较大者,即 length(A)=max(size(A)); ndims(A) 给出A的维数. reshape(A,m,n) 它在矩阵总元素保持不变的前提下,将 矩阵A重新排成m×n的二维矩阵.
MAtlab第2章
第二章 矩阵和数组
一. 数组、向量、矩阵的概念
二. 创建向量
三. 创建矩阵 四.向量和矩阵的元素的访问和赋值 五 . 矩阵的运算 六. 稀疏矩阵
七.多维数组
八.多项式 九.数组排序 十.非线性方程的实根的求取
第二章 矩 阵 和 数 组
一.数组、向量、矩阵的概念
1.数组:同一类元素的集合,可以分一维数组,二
法4:函数法: i)用linspace和logspace函数 ii) 用reshape函数(将向量重构成一个矩阵) iii)创建特殊矩阵
第二章 矩 阵 和 数 组 表 MATLAB的矩阵生成函数
函 数 zeros ones eye rand randn diag tril triu pascal magic 说 产生元素全为 0 的矩阵 产生元素全为 1 的矩阵 产生单位矩阵 产生均匀分布的随机数矩阵,数值范围(0,1) 产生均值为 0,方差为 1 的正态分布随机数矩阵 获取矩阵的对角线元素,也可生成对角矩阵 产生下三角矩阵 产生上三角矩阵 产生帕斯卡矩阵 产生幻方阵 明
2)矩阵相乘:两个矩阵的行列数必须匹配
数组相乘:两个矩阵行数和列数都一样
3)矩阵的n次方:矩阵必须是方阵 数组的n次方:每个元素的n次方
第二章 矩 阵 和 数 组
五. 矩阵的运算
*注意矩阵运算和数组运算的不同
表2-3 矩阵的基本运算
运算命令 A' A^n A*B A/B A\B A+B A? B inv det rank eig svd Norm 说 明 矩阵转置 矩阵求幂,n 可以为任意实数 矩阵相乘 矩阵右除 矩阵左除 矩阵加法 矩阵相减 矩阵求逆,注意不是所有的矩阵都有逆矩阵 求方阵的行列式 求矩阵的秩 求矩阵的特征向量和特征值 对矩阵进行奇异值分解 求矩阵的范数
第2章matlab矩阵与数组分解
08.01.2021
30
二 矩阵的保存和调用
➢ 存储在当前目录下 save mydata.txt A X load mydata.txt
示起始值、终止值和元素数目;
logspace用于产生一个对数间隔行向量(等比数列), b=logspace(0,4,5), 表示产生一个起始值为100, 终止值 为104, 元素数目为5的等比数列.
08.01.2021
28
>>X=10:20 >>X=0:0.1:0.5 >>X=linspace(0,pi,11) 或 >>X= linspace(0,1,11)* pi
08.01.2021
10
(二) 利用其它文本编辑器: (文本或二进制格式)
(1) 编辑一个文本文件: 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0
(2) 装入 该文本文件: load mymatrix.dat 或者: load mymatrix.txt
08.01.2021
9
(一) 利用MATLAB程序编辑器:
(1) MATLAB程序编辑器中输 入A: = [ ...
16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0 ]
(2) 存为: mymatrix.m (3) 运行: mymatrix
00 00 00
11 11 11
00 00 10
14
创建矩阵
用函数生成特定矩阵
函数操作
m=3;n=4
X4 =
《MATLAB程序设计教程》第2章 MATLAB矩阵及其运算
例2-3 分别建立3×3、3×2和与矩阵A同样大小的 零矩阵。 (1) 建立一个3×3零矩阵。 zeros(3) (2) 建立一个3×2零矩阵。 zeros(3,2) (3) 设A为2×3矩阵,则可以用zeros(size(A))建立 一个与矩阵A同样大小零矩阵。 A=[1 2 3;4 5 6]; %产生一个2×3阶矩阵A zeros(size(A)) %产生一个与矩阵A同样大小的 零矩阵
2.1.2 预定义变量
在MATLAB工作空间中,还驻留几个由系统 本身定义的变量。例如,用pi表示圆周率π 的近似值,用i,j表示虚数单位。 预定义变量有特定的含义,在使用时,应 尽量避免对这些变量重新赋值。
2.1.3 内存变量的管理 1.内存变量的删除与修改 MATLAB工作空间窗口专门用于内存变量 的管理。在工作空间窗口中可以显示所有 内存变量的属性。当选中某些变量后,再 单击Delete按钮,就能删除这些变量。当选 中某些变量后,再单击Open按钮,将进入 变量编辑器。通过变量编辑器可以直接观 察变量中的具体元素,也可修改变量中的 具体元素。
2.2.2 矩阵的拆分 1.矩阵元素 通过下标引用矩阵的元素,例如 A(3,2)=200 采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就 是相应元素在内存中的排列顺序。在MATLAB中,矩阵 元素按列存储,先第一列,再第二列,依次类推。例如 A=[1,2,3;4,5,6]; A(3) ans = 2 显然,序号(Index)与下标(Subscript )是一一对应的,以 m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其 相互转换关系也可利用sub2ind和ind2sub函数求得。
(3) 希尔伯特矩阵 在MATLAB中,生成希尔伯特矩阵的函数 是hilb(n)。 使用一般方法求逆会因为原始数据的微小 扰动而产生不可靠的计算结果。MATLAB 中,有一个专门求希尔伯特矩阵的逆的函 数invhilb(n),其功能是求n阶的希尔伯特矩 阵的逆矩阵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§2 矩阵的创建
§3 矩阵的访问(索引)
3.1 向量元素的访问
访问向量的元素只要使用相应元素的索引即可。 索引:坐标,以课堂的位置为例子。 例子:A = [1 2 3 4 5 6 7 8 9 0] >> %访问向量的第三个元素 >> A(3)
Note:c语言中采用的是“[]”,matlab中是”()”.
>> A(end,:)
ans = 5 10 15 20 25 >> %获取矩阵的子矩阵 >> I = [1 3 5];J = [2 4]; >> A(I,J) ans = 6 10 16 20
8 18
§4 矩阵的基本运算
4.1 矩阵生成函数
表2-2 MATLAB的矩阵生成函数
函 数 zeros ones eye rand randn diag tril triu pascal magic 说 产生元素全为 0 的矩阵 产生元素全为 1 的矩阵 产生单位矩阵 产生均匀分布的随机数矩阵,数值范围(0,1) 产生均值为 0,方差为 1 的正态分布随机数矩阵 获取矩阵的对角线元素,也可生成对角矩阵 产生下三角矩阵 产生上三角矩阵 产生帕斯卡矩阵 产生幻方阵 明
>> b = [2;6;4]; >> %求解方程,使用矩阵求逆的方法 >> x = inv(A)*b
>> %求解方程,使用矩阵左除运算 >> x = A\b
x=
1.0000 -1.0000
2.0000
note(扩展):超定方程组,最素的运算)
1)针对矩阵的运算
>> diag(A) ans =
1
2 6
>> %利用向量生成对角矩阵
>> diag(ans) ans = 1 0 0 0 2 0 0 0 6
4.2 基本矩阵运算
表2-3 矩阵的基本运算
运算命令 A' A^n A*B A/B A\B A+B A? B inv det rank eig svd Norm 说 明 矩阵转置 矩阵求幂,n 可以为任意实数 矩阵相乘 矩阵右除 矩阵左除 矩阵加法 矩阵相减 矩阵求逆,注意不是所有的矩阵都有逆矩阵 求方阵的行列式 求矩阵的秩 求矩阵的特征向量和特征值 对矩阵进行奇异值分解 求矩阵的范数
在c语言中无法实现的)。
3.2 矩阵元素的访问
矩阵元素的索引:
1)全下标形式;
2)单下标形式;
例2-10:
MATLAB工作空间中具有一个5×5的矩阵,该矩阵
是五阶的幻方,通过命令行获取矩阵的第二行、第四列
的元素,于是在MATLAB命令行窗口中键入下面的指令:
>> %创建矩阵 >> A = magic(5) A= 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> %使用全下标的形式访问元素 >> A(2,4) ans = 14 >> %使用单下标的形式访问元素 >> A(17) %注:是17不是9! ans = 14
1)直接逐个输入-[] 空格、逗号;分号 2)利用运算符“:” 3)线性等分功能函数linspace 4)对数等分功能函数logspace 列向量的创建: 1)注意“;” 2)转置
§2 矩阵的创建
2.2 矩阵的创建(P42)
1)直接输入-小矩阵 2)创建M文件输入大矩阵 3)数组编辑器 4)特定矩阵的生成:0矩阵,1矩阵,单位矩阵, 随机矩阵 例子: a=rand(3,3); openvar a;
例子2-11 用不同的方法访问矩阵的元素。
在MATLAB命令行中键入下面的指令:
>> % 创建矩阵 >> A = 1:25; >> A = reshape(A,5,5) A= 1 2 3 6 7 8 10 11 12 13 15 16 17 18 20 21 22 23 25
4
5
9 14 19 24
表2-1 使用索引访问矩阵元素的方法
矩阵元素的访问 A(i,j) A(I,J) A(i,:) A(:,j) A(:) A(l) A(L) 说 明 访问矩阵 A 的第 i 行第 j 列上的元素,其中 i 和 j 为标量 访问由向量 I 和 J 指定的矩阵 A 中的元素 访问矩阵 A 中第 i 行的所有元素 访问矩阵 A 中第 j 列的所有元素 访问矩阵 A 的所有元素,将矩阵看作一个向量 使用单下标的方式访问矩阵元素,其中 l 为标量 访问由向量 L 指定的矩阵 A 的元素,向量 L 中的元素为矩阵 元素的单下标数值
note:
* 使用了MATLAB函数magic创建幻方。所谓幻方,
就是n阶的方阵,该方阵的行元素和列元素的和都相等。 * 全下标的形式:简单、直接,同线性代数的矩阵 元素的概念一一对应。 * 单下标:是矩阵元素在内存中存储的序列号,一 般地,同一个矩阵的元素存储在连续的内存单元中。 * 单下标与全下标之间的转换关系:矩阵的第i行第j
>> %矩阵乘法
>> A*A' ans = 35 44 44 56
>> %数组乘法 >> A.*A
ans =
-1 -9 -25
-4 -16 -36
4.4 基本数学函数
在MATLAB中有部分函数可以用来进行基本 的数学运算,主要有如下类别: 1)三角函数 2)指数运算函数 3)复数运算函数 4)圆整和求余函数
2)针对矩阵元素的运算
例子:矩阵A,B,想得到C:C中元素是A、B中位 置对应元素的乘积。
方法1:for 循环处理; 方法2:.* (点乘)运算。
*)数组乘法(点乘)
例子2-16 数组乘法示例。 在MATLAB命令行中,键入下面的指令: >> %本例子中使用的矩阵 >> A
A=
0 + 1.0000i 0 + 3.0000i 0 + 5.0000i
第二章 矩阵与数组
• • • • 引言 矩阵的创建 矩阵的访问 矩阵的操作
§1 引言
1.1 变量与常量
常(变)量:程序运行的过程中不需要(可能需要)改 变数值的量。 note:c语言中const作为标记;而M语言中不存 在常量的定义,MATLAB中提供了一些常用的常 数作为常量,例如pi,i, j等。
>> %访问矩阵的第三行第一列元素 >> A(3,1)或A(3) ans = 3 >> % 访问矩阵第三行的所有元素 >> A(3,:) ans = 3 8 13 18 23 >> %访问矩阵第四列的所有元素 >> A(:,4) ans = 16 17 18 19 20
>> %访问矩阵的最后一行元素
0 + 2.0000i
0 + 4.0000i
0 + 6.0000i
>> %矩阵乘法
>> A*5
ans = 0 + 5.0000i 0 +10.0000i >> %数组乘法 0 +15.0000i 0 +20.0000i 0 +25.0000i 0 +30.0000i
>> A.*5
ans = 0 + 5.0000i 0 +10.0000i 0 +15.0000i 0 +20.0000i 0 +25.0000i 0 +30.0000i
note: * 关键字end在访问向量元素时,表示向量中最后
一个元素的序号。(方便:无需知道向量的实际长度,
即可操作)。 * 访问向量元素时,序号的数值必须介于数值1~ end之间。
例子 对向量的元素进行赋值。
>> %对向量的第三个元素赋值
>> A(3) = -3 A= 1 2 -3 4 5 6 7 8 9 0
note:
在MATLAB中,获取矩阵(线性代数)的运算函数列 表请在MATLAB命令行窗口中键入如下命令:
>> help matfun
在MATLAB命令行窗口中将显示相应的函数列表:
Matrix functions - numerical linear algebra. Matrix analysis. norm normest - Matrix or vector norm. - Estimate the matrix 2-norm.
表2-5 指数运算函数
函 数 exp log log10 log2 pow2 指数函数 自然对数函数 常用对数函数 以 2 为底的对数函数 2 的幂函数 说 明 函 数 realpow reallog realsqrt sqrt nextpow2 说 明 实数幂运算函数 实数自然对数函数 实数平方根函数 平方根函数 求大于输入参数的第一个 2 的幂
§1 引言
1.2 标量-向量-矩阵
“一般量”:单个数值;比如 3,4,pi等等; 向量:行、列向量;比如一段时间序列(温度); (一维数组) 矩阵:线性代数中的矩阵;(二维数组);比如 座位号码; …… (多维数组); note:向量是矩阵的特例(1×N、N×1的矩阵)。
§2 矩阵的创建
2.1 向量的创建(P39)
例子2-12 矩阵生成函数的示例。 在MATLAB命令行中键入下面的指令: >> %创建三阶帕斯卡矩阵 >> A = pascal(3) A= 1 1 1 1 2 3 1 3 6 >> %从矩阵A生成下三角矩阵 >> tril(A) ans = 1 0 0 1 2 0 1 3 6