matlab第三讲

上传人:aa****6 文档编号:50941006 上传时间:2018-08-11 格式:PPT 页数:37 大小:547.50KB
返回 下载 相关 举报
matlab第三讲_第1页
第1页 / 共37页
matlab第三讲_第2页
第2页 / 共37页
matlab第三讲_第3页
第3页 / 共37页
matlab第三讲_第4页
第4页 / 共37页
matlab第三讲_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《matlab第三讲》由会员分享,可在线阅读,更多相关《matlab第三讲(37页珍藏版)》请在金锄头文库上搜索。

1、第三讲 数值数组的创建和赋值matlab最大的特色可以说是它的矩阵操作了,它提供的相关命 令可以很方便的解决与矩阵有关的数据处理,我们在学习的时候就 可以体会到它的好处,这是c语言或者excel都无法比拟的.我们将重点学习一维数值数组和二维数值数组的创建访问和操作 , 并将结合中国大学生数学建模比赛的实例加以练习,避免纸上谈 兵。3.1 一维数组的创建和寻访一、一维数组的创建 1.一维数组的创建 (1)逐个元素输入法向量的元素用中括号括起来,如果是行向量,则元素之间用逗号或者是空 格隔开;如果是列向量,则元素之间用分号隔开(分号表示换行)。例如: x=(1,2,3,4,5,6,7,8) x=1

2、 2 3 4 5 6 7 8 ;% 一维 1x8 数组 或 x=1,2,3,4,5,6,7,8 ;% 一维 1x8 数组 size(x) %查询x的大小 ans= 1 8注意:size这个命令很有用,用于查询向量或者是矩阵的维数,size(x)返回的是 一个一行两列的数组,数组的第一个元素表示x的行数,第二个元素表示x的列数,知道了 size的用法,同学们还可以借助于帮助help size进一步熟悉它的用法。例如: x=(1,2,3,4,5,6,7,8)T x=1;2;3;4;5;6;7;8 ;% 一维 8x1 数组 size(x) %查询x的大小 ans= 8 1(2)冒号生成法 这是通过“

3、步长”设定,生成一维“行”数组的方法,通用的格式: x=a:c:b a是数组的第一个元素,c是间隔,若(b-a)是c的整数倍,则所生成 数组的最后一个元素等于b,否则小于b例:产生以起始值=1,增量值=2,终止值=13的数组 x=1:2:13 x =1 3 5 7 9 11 13x=1:2:12 x =1 3 5 7 9 11如果间隔为1,则可以缺省 例如:x=1:10 x=1 2 3 4 5 6 7 8 9 10(3)利用linspace(起始值,终止值,元素数目) x=linspace(0,10,6); % 利用linspace,以起始值=0,终止 值=10之间,元素数目=6x =0 2

4、4 6 8 10二、一维数组的子数组寻访和赋值例:x=8:-1:1 x =8 7 6 5 4 3 2 1 x(2) %访问x的第二个元素 ans= 7 x(2 4 5) %取 x的第二、四、五个元素组成一个新的数组 ans= 7 5 4 x(1:5) % x的第前五个元素 ans =8 7 6 5 4注意:MATLAB中,访问向量x的第一个元素是x(1),并且用的是圆括号(), 注意与C语言中的区别,不要混淆 x(7:end) % x的第七个元素后的元素 ans =2 1 x(8:-1:5) % x的第8个元素和第5个元素的倒排 ans =1 2 3 4 y=find(x5) % x中大于5的

5、元素的位置 y =1 2 3 x(find(x5) %大家猜猜返回的是什么ans=8 7 6 返回的是x中大与5的元素(按照它们在x中的顺序) x(3)= % 删除第三个元素 x =8 7 100 4 3 2 1 x(8)=-1.1 % 加入第八个元素 x =8 7 100 4 3 2 1 -1.1 x(4)=100 %给x的第四个元素重新给值100 x =8 7 6 100 4 3 2 1三、一维数组的操作min(x) %求x最小的元素 ans= -1.1m,n=min(x) %min可以有两个返回值,大家看看m,n各表示什么 m =-1.1 n =8注意:m表示x中最小的元素,n表示这个元

6、素在x中的位置max(x) %求x最大的元素 ans= 100m,n=max(x) %max可以有两个返回值,与min类似 m =100 n =3注意:m表示x中最大的元素,n表示这个元素在x中的位置m = -1.1000 1.0000 2.0000 3.0000 4.0000 7.0000 8.0000 100.0000 n =8 7 6 5 4 2 1 3m,n=sort(x) %sort可以有两个返回值,大家看看m,n各表示什么注意:对比一下,x=(8,7, 100, 4, 3,2, 1, -1.1), m表示把x中的元素按从小到大的顺序排序得到的新的向量, n表示这个新的向量中的元素原

7、来在x中的位置sort(x) %对x的元素按从小到大的顺序排序 ans= -1.1 1 2 5 6 7 8 100m = -1.1000 1.0000 2.0000 3.0000 4.0000 7.0000 8.0000 100.0000 n =8 7 6 5 4 2 1 3m,n=sort(x) %sort可以有两个返回值,大家看看m,n各表示什么sort(x) %对x的元素按从小到大的顺序排序 ans= -1.1 1 2 5 6 7 8 100思考:把x中的元素按从大到小的顺序排序怎么办, 而且还想知道n新的向量中的元素原来在x中的位置解决:把n中的元素倒排 n=n(end:-1:1);

8、%把x中的元素按从大到小的顺序排序之后个元素原来的位置 m=x(n); %把x中的元素按从大到小的顺序排序得到的新向量mean(x) %求x元素的平均值 ans= 15.4875sum(x) %求x元素的总和 ans= 123.9000abs(x) %对x的元素取绝对值,得到一个新的向量 ans= 8.0000 7.0000 100.0000 4.0000 3.0000 2.0000 1.0000 1.10003.2 二维数组(矩阵)的创建和寻访一、二维数组(矩阵)的创建二维数组输入必须有以下三个要素: 1.整个输入必须以方括号“”把所有元素括起来2.二维数组的行与行之间必须用分号“;”或回车

9、键【Enter】隔离3.二维数组元素必须由逗号“,”或空格分隔【例】输入矩阵(1)在键盘上输入下列内容:( 以 ; 区隔各列的元素) A = 1,2,3; 4,5,6; 7,8,9 (2)按【Enter】键,指令被执行。 (3)在指令执行后,MATLAB指令窗中将显示以下结果: A =1 2 34 5 67 8 9 或者 A=1,2,3 4,5,6 7,8,9 (以下是显示结果) A =1 2 34 5 67 8 9 二、二维数组的寻访和赋值1.访问格式:A(r,c) %输出A的第r行第c列的元素 例: A(2,1) %输出A的第2行第1列的元素 ans= 4赋值格式:A(r,c)=s %给A

10、的第r行第c列的元素赋值s 例: A(2,1)=0 %给A的第2行第1列的元素赋值0 A =1 2 30 5 67 8 92.访问格式:A(r,:) %输出A的第r行的所有元素 例: A(2,:) %输出A的第2行所有元素 ans= 0 5 6赋值格式:A(r,:)=S %给A的第r行的所有元素赋值S 注意:A的第r行的元素个数必须与S的元素个数相同 例: A(2,:) =8:10%给A的第2行所有元素赋值8 9 10 A =1 2 38 9 107 8 93.访问格式:A(:,c) %输出A的第c列所有元素 例: A(:,1) %输出A第1列所有元素 ans =187赋值格式:A(:,c)=

11、S %给A的第c列所有元素赋值S 注意:A的第c列的元素个数必须与Sa的元素个数相同 例: A(:,1)=-1;-2;-3 %给A的第1列所有元素赋值-1;-2;-3 A =-1 2 3-2 9 10-3 8 94. 访问格式:A(:) %由A的各列按自左到右的次序,首尾相接而成 的“一维”长列数组 ans =-1-2-32983109赋值格式: A(:)=D %D必须是一个一维的数组,并且元素个数与A相同 例:A(:)=-9:-1 A =-9 -6 -3-8 -5 -2-7 -4 -1思考:把A的1、3行组成一个新矩阵B, 命令:B=A(1 3,:)把A的各行改变顺序,按照3、2、1行得到一

12、个新的矩阵 命令:A=A(end:-1:1,:)删除A的第1、2行, 命令:A(1 2,:)=注意:对于列的操作是一样的道理下面看一个实例: 附件2 数据 1300多名病人按照4种疗法服药大约每隔8周测试的CD4浓度。 第1列是病人编号,第2列是4种疗法的代码: 第3列是病人年龄,第4列是测试CD4的时刻(周), 第5列是测得的CD4,取值log(CD4+1). 题目是通过这些数据得出不同年龄段的人应用不同疗法的疗效。 那么首先应该处理这些数据,现阶段我们主要练习用matlab处理 数据。1.导入数据首先我们应该把这些数据构成的一个大的矩阵导入matlab,方法 有二: (1)把文本文档(.t

13、xt文件)中的矩阵导入matlab的workspace (注意,文本文档中只能是一个矩阵的形式,不能含有其他的文字符号 ) 首先把文档所在处设为当前的路径,以便matlab能够找到,最好给 这个文本重命名,最好是英文名, 比如说我们把“附件2.txt”,命名为data.txt,设置好路径,在 command window中输入 load data.txt 回车之后就会发现在workspace中出现了一个变量:data 这就完成了文本文档中矩阵的导入 注意:格式是load+空格+单引号+文档名.txt+单引号(2)FileImport Data出现以下窗口,选择好文件“打开”就可以了选择“Nex

14、t”选择“Finish”,workspace中就出现了data这个变量(2)操作练习导入数据以后,我们做一些矩阵操作的练习 1)把所有使用第一种疗法的病人的数据找出来,生成的新矩阵命名为 program1,并查看这个矩阵的大小,把program1里cd4浓度出现了0的所在 行删除。 命令: place1=find(data(:,2)=1); %找出data中第二列的等于1的元素所在位置program1=data(place1,:); % 把data中第二列的等于1的元素所在行提取出来组成一个新的矩阵 %program1 program1_size=size(program1); %查询program1的大小 zeroplace=find(program1(:,5)=0); %找出program1第五列中等于0的元素的位置 program1(zeroplace,:)=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

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