Matlab实训2

上传人:油条 文档编号:47548501 上传时间:2018-07-02 格式:PPT 页数:78 大小:698.50KB
返回 下载 相关 举报
Matlab实训2_第1页
第1页 / 共78页
Matlab实训2_第2页
第2页 / 共78页
Matlab实训2_第3页
第3页 / 共78页
Matlab实训2_第4页
第4页 / 共78页
Matlab实训2_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《Matlab实训2》由会员分享,可在线阅读,更多相关《Matlab实训2(78页珍藏版)》请在金锄头文库上搜索。

1、 实实 训训 一一向量、矩阵的运算向量、矩阵的运算2.1 矩阵元素的访问与赋值访问矩阵的元素需要使用矩阵元素的索引 使用矩阵元素的行列双下标形式A(*,*) 使用全下标形式访问矩阵元素的方法简单、直接,同线性代数的矩阵元素的概念一一对应 使用矩阵元素的单下标形式A(*) 矩阵元素的单下标是矩阵元素在内存中存储的序列号,一般地,同一个矩阵的元素在连续的内存单元中(元素的排列以列元素优先)4 110 51 96 132 178 22 69 104 147 187 35 77 111 155 190 43 84 125 168 20A(1:4,5) A(:,5) A(:,end) A(17:20)

2、A(17:20)A(2:4,2:3) A(2 3 4,2 3)A(1,2) A(5)例 A=矩阵元素的访问与赋值(续)矩阵元素的单下标与双下标之间的转换关系 以mn的矩阵为例第i行第j列的元素双下标转换为单下标l=(j-1)m+i例:A(1,2)A(5)m=4,n=5,i=1,j=2l=(j-1)m+i=(2-1)4+1=5 MATLAB提供的两个函数 sub2ind:根据双下标计算单下标 ind2sub:根据单下标计算双下标矩阵元素的访问与赋值(续)例: A=4 10 1 6 2;8 2 9 4 7;7 5 7 1 5;0 3 4 5 8A =4 10 1 6 28 2 9 4 77 5 7

3、 1 50 3 4 5 8 sub2ind(size(A),2,2)ans =6 i,j=ind2sub(size(A),7)i =3j =2? ind2sub(size(A),7) size(A) ans =4 5矩阵元素的访问与赋值(续)ans =7“逻辑1”访问 常用于寻找数组中所有大于某值的元素的问题 例子:找出数组A= -4 2 0 2 4 中所有绝对值大于3的元素-3 5 1 3 5 A=-4 -2 0 2 4;-3 -5 1 3 5; %生成数组A L=abs(A)3 %产生与A同维的01逻辑值数组 L =1 0 0 0 10 1 0 0 1 islogical(L); %判断L

4、是否逻辑值数组 X=A(L) %把L中逻辑值1对应的A元素取出 X =-4-545矩阵元素的访问与赋值(续)A(L): “逻辑1”访问。生成一维列数组,由与A同 样大小的逻辑数组L中的“1”元素选出A的对应元素 ,按单下标次序排成长列组成。矩阵元素的赋值 全元素赋值方式:A(:)=D(:) 结果:保持A的行宽、列长不变 条件: A、D两个数组的总元素数相等,但行宽、列长不一定相同 例: A=zeros(2,4) %产生元素全为0的矩阵 A =0 0 0 00 0 0 0 D=1:8 D =1 2 3 4 5 6 7 8 A(:)=D(:) A =1 3 5 72 4 6 8 矩阵元素的访问与赋

5、值(续)? D(:)=A(:)D =0 0 0 0 0 0 0 0矩阵元素的赋值(续) 以单下标方式对A的部分元素重新赋值:A(s)=Sa 结果:保持A的行宽、列长不变 条件: s单下标数组的长度必须与一维数组Sa的长度相等,但是s、 Sa不一定同是行数组或列数组 例: A=1 2 3 4;5 6 7 8 A =1 2 3 45 6 7 8 s=2 3 5 s =2 3 5 A(s) ans =5 2 3矩阵元素的访问与赋值(续) Sa=10 20 30 Sa =10 20 30 A(s)=Sa A =1 20 30 410 6 7 8 Sa=10 20 30 Sa =102030 A(s)=

6、Sa A =1 20 30 410 6 7 8矩阵元素的赋值(续) 以双下标方式对子数组A(r,c)进行赋值:A(r,c)=Sa 结果:保持A的行宽、列长不变 条件: Sa的行宽、列长必须与A(r,c)的行宽、列长相同 例: A=1 2 3 4;5 6 7 8 A =1 2 3 45 6 7 8 Sa=ones(2) Sa =1 11 1矩阵元素的访问与赋值(续) A(:,2 3) ans =2 36 7 A(:,2 3)=Sa A =1 1 1 45 1 1 8用于矩阵(数组)操作的常用函数2.2 矩阵(数组)操作函数 函数说 明size获取矩阵的行、列数,对于多维数组,获取数组的各个维的尺

7、寸length获取向量长度,若输入参数为矩阵或多维数组,则返回各个维尺寸的最大值ndims获取矩阵或多维数组的维数numel获取矩阵或数组的元素个数disp显示矩阵或者字符串内容cat合并不同的矩阵或数组reshape保持矩阵元素的个数不变,修改矩阵的行数和列数repmat复制矩阵元素并扩展矩阵fliplr交换矩阵左右对称位置上的元素flipud交换矩阵上下对称位置上的元素flipdim获取指定的方向翻转交换矩阵元素find获取矩阵或者数组中非零元素的索引例:size函数使用示例 A=1 2 3 A =1 2 3 size(A) ans =1 3矩阵(数组)操作函数(续) B=1 2 3;4

8、5 6 B =1 2 34 5 6 size(B) ans =2 3例:length函数使用示例 A=1 2 3;4 5 6 A =1 2 34 5 6 length(A) ans =3矩阵(数组)操作函数(续) B=1 2 3;4 5 6;7 8 9;4 2 7 B =1 2 34 5 67 8 94 2 7 length(B) ans =4例:ndims和numel函数使用示例 A=1 2 3 A =1 2 3 ndims(A) ans =2 numel(A) ans =3矩阵(数组)操作函数(续) B=1 2 3;4 5 6 B =1 2 34 5 6 ndims(B) ans =2 n

9、umel(B) ans =6例:reshape函数使用示例 A=1:8 A =1 2 3 4 5 6 7 8 B=reshape(A,2,4) B =1 3 5 72 4 6 8 C=reshape(A,3,3) ? Error using = reshape To RESHAPE the number of elements must not change.矩阵(数组)操作函数(续)不能改变矩阵包含元素的个数将矩阵A改成2行4列,也可写成 B=reshape(1:8,2,4)例:对称交换函数使用示例 B =1 3 5 72 4 6 8 fliplr(B) ans =7 5 3 18 6 4

10、2 flipud(B) ans =2 4 6 81 3 5 7矩阵(数组)操作函数(续)flipdim函数的第二个参数必须是 大于0的整数:参数为1时,效果和flipud函数一致参数为2时,效果和fliplr函数一致 flipdim(B,1) ans =2 4 6 81 3 5 7 flipdim(B,2) ans =7 5 3 18 6 4 2例:repmat使用示例 A=pascal(2) A =1 11 2 repmat(A,2,3) ans =1 1 1 1 1 11 2 1 2 1 21 1 1 1 1 11 2 1 2 1 2矩阵(数组)操作函数(续)repmat函数的基本语法为:

11、 repmat(A,M,N) 作用是将指定的矩阵A复制MN次, 其中M对应的是行,N对应的是列。 若M=N,则可简写成repmat(A,M) repmat(A,2) ans =1 1 1 11 2 1 21 1 1 11 2 1 2创建复杂矩阵 使用MATLAB提供的矩阵扩展方法完成相应矩阵的构造 假设矩阵A为三阶方阵,B为二阶方阵,由A和B组合构成五阶方阵C=A O;O B,其中O为相应的零矩阵矩阵(数组)操作函数(续)例: A=reshape(1:9,3,3); B=1 2;3 4; O=zeros(length(A),length(B) O =? C=A O;O B矩阵(数组)操作函数(

12、续)例: A=reshape(1:9,3,3); B=1 2;3 4; O=zeros(length(A),length(B) O =0 00 00 0 C=A O;O B矩阵(数组)操作函数(续)例: A=reshape(1:9,3,3); B=1 2;3 4; O=zeros(length(A),length(B) O =0 00 00 0 C=A O;O B C =1 4 7 0 02 5 8 0 03 6 9 0 00 0 0 1 20 0 0 3 4矩阵(数组)操作函数(续)提问: A=reshape(1:9,3,3); B=1 2;3 4; C =1 2 0 0 03 4 0 0 00 0 1 4 70 0 2 5 80 0

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号