MATLAB_3 MATLAB编程.ppt_第1页
MATLAB_3 MATLAB编程.ppt_第2页
MATLAB_3 MATLAB编程.ppt_第3页
MATLAB_3 MATLAB编程.ppt_第4页
MATLAB_3 MATLAB编程.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第 3 章 MATLAB 编程,3.1概述 3.2数据类型 3.3运算符 (重点) 3.4流程控制 (重点) 3.5M 文件调试,2,3.1概述,1. M 语言的特点: 演算纸式的语言 向量化编程 解释性语言,执行效率低,开发效率高,适合进行算法开 发与验证。,3,M 文件分为脚本文件和函数文件, 脚本文件 一系列命令组成,无输入输出参数; 处理的数据或变量必须在 workspace 中。 函数文件 有输入输出参数; 不同的函数分别有自己的工作空间,有局部 变量和全局变量之分; 函数名必须和文件名一致。,4,3.2数据类型,1. MATLAB 中的常量,ans : 默认的结果 pi : 圆

2、周率 Inf :无穷大 NaN :非数 i , j : 虚数单位,常量可以重新赋值 clear 或软件重启后恢复,5,2. 基本数值类型,整型(int8 uint8 int16 uint16),实型,单精度型 single,双精度型 double,MATLAB 中的数据类型在使用前不用声明 MATLAB 默认的数值类型为 double,各数值类型之间可以进行强制转换,6,3. 字符串类型char, a=t; b=hello; 执行后的 workspace 为:,7, a=(31); 执行后的 workspace 为:,4. 逻辑类型 logical,8,3.3运算符,程序设计基本运算包括:算术

3、运算、关系运算、逻辑运算、赋值运算、位运算、字符串操作等。,1. 关系运算,关系运算也叫比较运算,条件为真时结果为1,条件为假时结果为 0。,操作对象:数值类型向量或矩阵 操作结果:逻辑向量或矩阵,9,标量与标量比较 a=1; b=2; ab ans = 0,标量与向量比较 a=1 2 3 4 5; 3a ans = 1 1 0 0 0 a=4 ans = 1 1 1 1 0,10,向量与向量比较 a=1 2 3 4 5; b=1 0 3 1 4; a=b ans = 1 0 1 0 0,标量与矩阵比较 M=1 2 3;4 5 6;7 8 9 M = 1 2 3 4 5 6 7 8 9 M5

4、ans = 0 0 0 0 0 1 1 1 1,11,矩阵与矩阵比较 M=1 2 3;4 5 6;7 8 9 M = 1 2 3 4 5 6 7 8 9 N=1 3 5;2 1 4;2 0 1 N = 1 3 5 2 1 4 2 0 1 MN ans = 0 1 1 0 0 0 0 0 0,关系运算不能在向量和矩阵之间进行。,12,2. 逻辑运算,简单逻辑运算,操作对象:逻辑、数值类型向量或矩阵 操作结果:逻辑向量或矩阵,13,标量与标量 a=3; b=0; a2 0 1;3 3 0 M = 1 3 0 2 0 1 3 3 0 M3 0 1;2 3 0 M = 1 0 2 3 0 1 2 3

5、0 N=2 0 5;3 2 0;0 1 5 N = 2 0 5 3 2 0 0 1 5, M3 3 2;0 6 8 M = 1 0 2 3 3 2 0 6 8 any(M) ans = 1 1 1 all(M) ans = 0 0 1,对矩阵进行 any 和 all 运算时按列进行操作,18,逻辑索引,例:对向量元素进行逻辑索引 a=3 5 9 8 4 6 a = 3 5 9 8 4 6 a5 ans = 0 0 1 1 0 1 a(a5) ans = 9 8 6,输出结果为 a 中所有大于 5 的元素,19,例:对矩阵元素进行逻辑索引 M=2 6 9;3 5 4 M = 2 6 9 3 5

6、4 M M(M6) ans = 2 3 5 4,输出结果为 a 中所有小于 6 的元素,按列的顺序,20,3. 赋值运算,标量赋值给向量 a=1:6 a = 1 2 3 4 5 6 a(2:4)=7 a = 1 7 7 7 5 6 a(a3)=3 a = 1 3 3 3 3 3, M=1 2 3;4 5 6;7 8 9 M = 1 2 3 4 5 6 7 8 9 M(1,:)=10 M = 10 10 10 4 5 6 7 8 9,21,标量赋值给矩阵 M=1 2 3; 4 5 6;7 8 9 M = 1 2 3 4 5 6 7 8 9 M(1:2,1:2)=0 M = 0 0 3 0 0 6

7、 7 8 9,22,向量赋值给向量 a=1:6 a = 1 2 3 4 5 6 a(1:3)=7 8 9 a = 7 8 9 4 5 6, M=1 2 3;4 5 6;7 8 9 M = 1 2 3 4 5 6 7 8 9 M(2,:)=10 10 10 M = 1 2 3 10 10 10 7 8 9,23,矩阵赋值给矩阵 M=1 2 3;4 5 6;7 8 9 M = 1 2 3 4 5 6 7 8 9 M(1 2,2 3)=0 1;2 3 M = 1 0 1 4 2 3 7 8 9,赋值运算不能在向量和矩阵之间进行!,24,MATLAB 中的向量和矩阵对于赋值运算具有自动扩展大小的功能,

8、但应慎用! a=1 2 3 a = 1 2 3 a(5)=4 a = 1 2 3 0 4 a(2,2)=5 a = 1 2 3 0 4 0 5 0 0 0 a(3,6)=6 a = 1 2 3 0 4 0 0 5 0 0 0 0 0 0 0 0 0 6,25,4. 位运算,操作对象:无符号整数 操作结果:无符号整数,26,例 a=dec2bin(18) a = 10010 b=dec2bin(29) b = 11101 bitand(18,29) ans = 16 dec2bin(16) ans = 10000 bitor(18,29) ans = 31, dec2bin(31) ans =

9、11111 bitxor(18,29) ans = 15 dec2bin(15) ans = 1111 bitget(18,1) ans = 0 bitget(18,1:5) ans = 0 1 0 0 1,27, bitset(18,1) ans = 19 dec2bin(19) ans = 10011 bitset(18,1,3) ans = 19 22 bitcmp(18,8) ans = 237 dec2bin(237) ans = 11101101, bitshift(237,1) ans = 474 %左移一位,相当于乘以2 dec2bin(474) ans = 111011010

10、 bitshift(237,-1) ans = 118 %右移一位,相当于除以2再取整 dec2bin(118) ans = 1110110,28,5. 字符串操作,字符串的格式化 sprintf,例: clear; clc; for i=1:5 str=sprintf(第%d个字符串,i); disp(str); end,运行结果: 第1个字符串 第2个字符串 第3个字符串 第4个字符串 第5个字符串,29,3.4 流程控制,结构化程序设计的三种基本结构: 顺序结构、选择结构、循环结构,1. 选择结构 第一种形式: if 表达式 MATLAB语句 end,例: a=input(输入: );

11、if a0 disp(a0); end,运行程序 输入12 回车后命令窗口显示: a0,30,第二种形式: if(表达式) MATLAB语句A else MATLAB语句B end,例: clear; clc; a=input(输入:); if a0 disp(a0); else disp(a=0); end,运行程序 输入3 回车后命令窗口显示: a0,31,第三种形式:,if 表达式1 MATLAB语句A elseif 表达式2 MATLAB语句B (elseif) else MATLAB语句N end,32,score= input(输入:); if score100 disp(不合理数

12、据); elseif score60 disp(不及格); elseif score80; disp(良); else disp(优); end,运行程序,输入75 后回车,命令窗口显示: 良,33,第四种形式: switch 表达式 case 常量a:MATLAB语句A case 常量b:MATLAB语句B : : case 常量m:MATLAB语句M otherwise MATLAB语句N end,34,例: grade= input(输入:); switch grade case A disp(90100); case B disp(8089); case C disp(7079); c

13、ase D disp(6069); otherwise disp(059); end,运行程序,输入A,回车后命令窗口显示: 90100,35,2. 循环结构 第一种形式: while表达式 MATLAB语句 end,i=1; s=0; while i=100 s=s+i; i=i+1; end disp(s);,运行结果: 5050,36,第二种形式: for index = start:increment:end MATLAB语句 end,例:计算1+2+.+100 s=0; for i=1:1:100 s=s+i; end disp(s);,运行结果: 5050,37,例:1100 所有

14、奇数的和 s=0; for i=1:1:100 if(mod(i,2)=1) s=s+i; end end disp(s);,运行结果: 2500,选择语句与选择语句之间、选择语句与循环语句之间、循环语句与循环语句之间都可以嵌套。,38,3. break 和 continue 语句 break:跳出本层循环,循环结束 continue:结束本次循环,开始下一次循环,循环未结束,例:break 语句 a=1 6 3 4 2 0 6 1 4; for i=1:length(a) if a(i)=0 break; end end disp(i);,运行结果: 6,若为continue?,39,例:c

15、ontinue语句 for i=1:10 if mod(i,3)=0 continue; end disp(i); end,运行结果: 3 6 9,40,3.5 函数文件,2. 基本格式: function 输出参数列表 = 函数名(输入参数列表),MALAB 里面的函数可以有多个输出参数,1. 文件构成:以 mean.m 为例,41,多个输入参数,多个输出参数,function out1 out2=add_sub(in1,in2) %函数功能:求两个向量的和与差 out1=in1+in2; out2=in1-in2;, m,n=add_sub(1 2 3,4 5 6) m = 5 7 9 n = -3 -3 -3 a=add_sub(1 2 3,4 5 6) a = 5 7 9,42,3. 主函数和子函数 M 文件中第一个函数为主函数,其余为子函数,function out=add(in1,in2,in3)%主函数 out=add_s(in1)+add_s(in2)+add_s(in3); function out_s=add_s(in_s)%子函数 out_s=0; for i=1:length(in_s) out_s=out_s+in_s(i); end,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论