当前位置:文档之家› 第二章 matlab矩阵及其运算

第二章 matlab矩阵及其运算


k=find(a) k= 33 74
2.矩阵寻址或者下标
[i,j,v]=find(a>0) i=3 j=7 v=1
If X is a logical expression, then v is a logical array. Output v contains the nonzero elements of the logical array obtained by evaluating the expression X.
1.矩阵的创建 • >> logspace(0,2,11)
%创建从100开始,到102结束,包含11个值的数组
ans = 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 25.1189 39.8107 63.0957 100.0000
1.矩阵的创建
2.矩阵寻址或者下标
D= 1 2 3
>> D(2)
4 5 6
7 8 9
10 11 12
ans = 2 >> D(5) ans = 5
2.矩阵寻址或者下标
函数ind2sub 可以将一个单一索引值转换成 行列下标,则sub2ind可以将行列下标转换成单 一索引值。 >> sub2ind(size(D),2,4) ans = 11 >> [r , c] = ind2sub(size(D),10) r= 1 c= 4
2.矩阵寻址或者下标 利用下标修改矩阵元素,更是方便 例:a(2,3) = 15; a(2,1:3) = [5 10 15]; 这时a的第二行变成5 10 15, 其他行不变 也可利用end表示最后一个元素 a(2,1:end)表示矩阵的第二列
2.矩阵寻址或者下标
看几个简单的例子:
>> A = [1 2 3; 4 5 6; 7 8 9 ] A= 1 2 3 4 5 6 7 8 9 >> A ( 3 , 3 ) = 0 % set element in 3rd row, 3rd column to zero A= 1 2 3 4 5 6 7 8 0
矩阵下标
在Matlab中,我们可以通过下标来访 问矩阵元素。 矩阵下标相当重要,灵活,等同于c语 言的指针地位 例:b=a(1,2)+a(2,3) b=a(8)+a(4) 注意:matlab是按列存取的。
2.矩阵寻址或者下标 例如, >> x(3) % The third element of x ans = 0.6283 >> y(5) % The fifth element of y ans = 0.9511
3.1416
2.矩阵寻址或者下标 • 例子: • >> y(3:-1:1) %表示返回y的元素从3开始, 向下减1计数,到1结束。 • >> x(2:2:7) %表示返回x的元素从2开始, 以步长为2计数,到7结束。 • >> y([8 2 9 1]) % ????? • >> y([1 1 3 4 2 2 8 ]) % ?????
1.矩阵的创建
>> x=(0:0.1:1)*pi x= 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416 >> x=linspace(0,pi,11) % linspace(first_value,last_value,number_of_value)) x= 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416
第二章 MATLAB矩阵及其运算
—MATLAB具有出色的矩阵运算能力, 能解决线性代数中的关于矩阵的一切运算。
目录
1. 简单矩阵的创建 2. 矩阵寻址或者下标
3. 几种典型矩阵
4. 矩阵运算
MATLAB矩阵简介
从结构上讲,矩阵(数组)是MATLAB数 据存储的基本单元 从运算角度讲,矩阵形式的数据有多种运
4.几种典型矩阵
下列命令用来创建 单位矩阵:
>> eye(4) ans = 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1
下列命令用来创建随机矩阵:
>> rand(3) ans = 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575 >> rand(1,5) ans = 0.9649 0.1576 0.9706 0.9572 >> b=eye(3) b= 1 0 0 0 1 0 0 0 1 >> rand(size(b)) ans = 0.8003 0.9157 0.6557 0.1419 0.7922 0.0357 0.4218 0.9595 0.8491
2.矩阵寻址或者下标
数组寻址 描述 A(r , c) 用所希望的行r和所希望的列c定义的索引向量来寻 址A的子数组 A(r , :) 用所希望的行r和所有的列所定义的索引向量来寻址 A的子数组 A(: , c) 用所有的行和所希望的列c定义的索引向量来寻址A 的子数组 A( : ) 以列向量的方式一次寻址A的所有元素,依列进行。 如果A(:)出现在等号的左侧,意味着用等号右侧的 元素来填充数组A,而不改变A的形状。 A( k ) 用单一索引向量k寻址A的子数组,就像A是列向量 A(:)一样
2.矩阵寻址或者下标
>> A = [1 2 3; 4 5 6; 7 8 9 ] ;%restore original data >> B= A (3:-1:1 , 1:3) B= 7 4 1 8 5 2 9 6 3
该语句通过将数组A的行按逆序排列,得到数组B。
2.矩阵寻址或者下标
>> C = [A B( : , [1 3] )] C= 1 2 3 7 9
2.矩阵寻址或者下标
• 如果想要访问一块数据, >> x(1:5) ans = 0 0.3142 0.6283 0.9425
>> x(7:end) ans = 1.8850 2.1991 2.5133 2.8274 关键字end表示x数组的最后一元素
1.2566
括号中“1:5”表示从1开始,然后加1计数直到5。
4
7
5
8
6
9
4
1
6
3
该语句通过将数组B的第一和第三列附加或连接在数组 A的右侧,生成数组C。
2.矩阵寻址或者下标 矩阵行列删除
利用空矩阵可从矩阵中删除指定的行或列。 如,要删除第二行 b(2, :)=[ ] 要删除第二列 b(:,2) = [ ] 注意:将矩阵某元素附空值与赋零值完全不同 b(1,2) = [ ]出错! b(1,2) = 0 可以
1.矩阵的创建
一维矩阵创建方法 x=[2 2*pi sqrt(2) 2-3j] X=first:last 意 义
创建包含任意元素的行向量x
创建行向量x,从first开始,步长为1, 到last结束。如果不能到last,则到小于 last的最大正数结束。 x=first:increment: 创建行向量x,从first开始,步长为 last increment,到last结束。如果不能到 last,则到小于last的最大正数结束。 X=linspace(first,la 创建均匀间隔的行向量x,从first开始, st,n) 到last结束。总共有n个元素。 X=logpace(first,la 创建均匀间隔的行向量x,从10first开始, st,n) 到10last结束。总共有n个元素。
2.矩阵寻址或者下标
>> A ( 2 , 6 ) = 1 % set element in 2rd row, 6th column to one A= 1 2 3 0 0 0 4 5 6 0 0 1 7 8 0 0 0 0 >> A( : , 4) = 4 % set element in 4th column to four A= 1 2 3 4 0 0 4 5 6 4 0 1 7 8 0 4 0 0
2.矩阵寻址或者下标
find函数
k=find(X)可在阵列X中找出非零元素下标 [i, j]=find(X)可在矩阵X中找出非零元素的 行列下标。 [i, j, v]=find(X)可得到非零值的列向量v.
2.矩阵寻址或者下标
a=zeros(5,20); a(3,7)=0.5; a(4,15)= -0.4; [i,j,v]=find(a) i=3 4 j=7 15 v=0.5000 -0.4000
4.几种典型矩阵 典型矩阵
>> ones(3) ans = 1 1 1 1 1 1 1 1 1 >> zeros(2,5) ans = 0 0 0 0 0 0 说明:
0 0
0 0
对于ones和zeros函数, 只有一个输入参数时,即 ones(n)或zeros(n), Matlab就生成一个nxn的全 1或者全0数组;当有两个 输入参数时,即ones(r,c) 或zeros(r,c), Matlab就分 别生成一个r行c列的全1或 者全0数组。
1.矩阵的创建
这样,x和y就成了一一对应的有序数列。由于这种有序性 的存在,我们就很自然地想到用下标来表示x和y中的一 个单独元素。如,x1表示x的第一个元素,y1表示y的第 一个元素,以此类推…… MATLAB的实现:
• • • • • • >> x= [0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi] x= 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416 >> y=sin(x) y= 0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000
相关主题