第2章MATLAB7.0程序设计基础一般介绍教学要求内容简介目录_见附件4前言_见附件3成绩确定选课要求教学大纲_见附件1教学安排_见附件2学习方法学习要求_见目录关于教材参考文献教学方法教学改革第2章MATLAB7.0程序设计基础第1章MATLAB语言入门语言简单易学代码短小高效计算功能强大绘图非常方便扩充能力强大帮助功能完整…5.36.57.0R2006a2007a2008a发展历程基本特点平台外貌平台安装进入编译平台编译m文件或命令窗口输入函数命令设计可视化程序界面进一步编制m文件(底稿文件和函数文件)编译过程与完善程序学习文件编程步骤简单实例(1)使用函数在线帮助help函数命令=名称通常是小写字母(2)使用全部帮助。MATLAB7.0的自述文件,见图1-14计算1到100的平方和。x=1:100y=x.^2;z=sum(y)第2章MATLAB7.0程序设计基础鼠标双击WinXP桌面上图标在WinXP“开始”菜单的“程序”选项中选择“MATLAB”退出MATLAB命令窗口键入“quit”或“Ctrl+Q”鼠标选择菜单fileExitMATLAB————MATLAB使用简介————启动MATLAB第2章MATLAB7.0程序设计基础MATLAB桌面命令窗口工作空间浏览命令历史窗口第2章MATLAB7.0程序设计基础命令窗口、编辑窗口、图形窗口————MATLAB使用简介————第2章MATLAB7.0程序设计基础n=0:1:63;S=sum(2.^n)S=1.8447e+019例2.计算sinx在处的值3,4,6,8clearx=pi./[8,6,4,3],y=sin(x)y=0.38270.50000.70710.8660————MATLAB使用简介————7/15例1.计算级数:S=1+2+22+23+···+263=6302nn第2章MATLAB7.0程序设计基础2.1常量与变量2.2数组建立与引用2.3运算符2.4m文件2.5程序设计MATLAB文件形式命令文件的命名与位置函数文件的命名与格式M文件的调试顺序结构分支结构循环结构第2章MATLAB7.0程序设计基础2.1.1特殊常量MATLAB中特殊的固定变量称为常量。anspirealmaxrealmininfNaNijdateclocktictoc2.1常量与变量_1第2章MATLAB7.0程序设计基础常数返回值ans默认变量名,保存最近的结果pi圆周率realmax最大正浮点数realmin最小正浮点数inf无限值i,j虚数单位NaN不合法的数值值,非数值date日期clock时间第2章MATLAB7.0程序设计基础数学表达式Matlab运算符Matlab表达式加a+b+a+b减a-b-a-b乘a×b*a*b除a÷b/或\a/b或b\a幂ab^a^b基本运算符运算次序:1.幂乘除加减,同级运算次序——“自左向右”2.括号“()”可以改变优先次序第2章MATLAB7.0程序设计基础复数:z=a+bi=reiθ一般形式:1)a+bi2)z=a+bi复数指令:real(z)给出复数z的实部;image(z)给出复数z的虚部;abs(z)给出复数z的模;angle(z)以弧度为单位计算z的复角。第2章MATLAB7.0程序设计基础2.1.2一般变量(可动变量)MATLAB依据变量值或对变量操作来识别变量类型,不要求事先对所使用变量进行声明或指定变量类型。第2章MATLAB7.0程序设计基础MATLAB中的变量命名规则:(1)变量名区分大小写。(2)变量名长度不超过31位。(3)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点。2.1常量与变量_2变量命名规则MATLAB中的变量作用域。第2章MATLAB7.0程序设计基础例如:合法变量名x1,x2,a,b,c,abc,Ma1,zhang_3xNo_1,alpha,·········不合法变量:x%1,2x,x变量,abc.变量名和函数名对字母的大小写敏感;X,x,Z,z是不同变量第2章MATLAB7.0程序设计基础•创建变量在命令窗口中直接输入变量名称创建A=9A=9isvarname8th_column//确认变量名的合法性ans=0第2章MATLAB7.0程序设计基础数据类型举例描述逻辑型数组magic(4)10包含1、0或true、false字符型数组‘Hello’长度16位,即为字符串Int8、unit8int16、unit16uint8(magic(3))长度为8位、16位的有符号和无符号整型数组single3*10^38单精度数值型数组double3*10^3005+6i双精度数值型数组单元数组{17'hello'eye(2)}包含其他数组。将不同大小有关系的数据集中到一起结构数组a.day=12;a.color=‘red’;a.mat=magic(3);具有字段名。包含其他数组。与单元数组类似matlab数据类型第2章MATLAB7.0程序设计基础MATLAB用format命令来控制输出格式,formatshort短格式3.146formatlong长格式3.14159265358979formatshorte短格式e3.1416e+000formatlonge长格式e3.141592653589793e+000formatrat分数格式355/113formatbank银行格式3.14第2章MATLAB7.0程序设计基础who列出在MATLAB工作空间中已有的变量whos列出驻留变量的同时,还给出维数及性质clear删除内存中的变量(数据)clc删除命令窗口的内容(已使用过的命令)home光标移到命令窗口的左上角clf删除图形窗口的内容↑调出刚才使用过的命令quit退出MATLABdir显示当前目录下文件及子目录MATLAB命令窗口的部分通用命令第2章MATLAB7.0程序设计基础2.2数组_1建立与引用2.2数组2.2.1建立数组1逐个元素输入法格式:x=[a,b,c]x=[abc][例2-1]第2章MATLAB7.0程序设计基础2.2数组_1建立与引用2冒号法格式:x=初始量:步长:终止量x=i:j如果ij,生成以i为初值,j为终值,1为步长的有限等差数列;x=i:j:k如果ik,生成以i为初值,k为终值,j为步长的有限等差数列;x=i:-j:k如果ik,生成以i为初值,k为终值,-j为步长的有限等差数列;[例2-2]第2章MATLAB7.0程序设计基础2.2数组_1建立与引用3特殊方法[linspace,logspace]x=linspace(初始量:终止量:数组元素个数)x=logspace(初始量:终止量:数组元素个数)[例2-3][例2-4]第2章MATLAB7.0程序设计基础2.2数组_1建立与引用2.2.2数组应用格式:A(s):数组A的第s个元素例如:A(3)=7A([1,3,5])=2A([1,3,5])=[2,6,7]第2章MATLAB7.0程序设计基础2.2.1创建矩阵的常用方法:1.直接输入法;2.函数法;3.矩阵编辑器;4.数据文件法直接输入法三条规则:矩阵元素必须在方括号[]之内;同一行相邻元素间用逗号或空格分隔;矩阵的行与行之间必须用分号分隔.例4.三阶Hilbert矩阵A=[11/21/3;1/21/31/4;1/31/41/5]A=1.00000.50000.33330.50000.33330.25000.33330.25000.20002.2、矩阵第2章MATLAB7.0程序设计基础C=[]—产生空阵r=rand——产生随机数R=rand(3,4)——产生3×4阶随机矩阵E=eye(3)——产生3阶单位矩阵B=zeros(3,4)——产生3×4阶全“0”矩阵D=ones(3,4)——产生3×4阶全“1”的矩阵X=magic(3)——产生3阶幻方Y=vander(4)——产生4阶范德蒙矩阵函数法构造特殊矩阵第2章MATLAB7.0程序设计基础聚合矩阵通过连接一个或多个矩阵来形成新的矩阵C=[AB]//水平方向上聚合C=[A;B]//垂直方向上聚合例A=ones(2,5)*6;B=rand(3,5);C=[A;B]C=6.00006.00006.00006.00006.00006.00006.00006.00006.00006.00000.61540.73820.93550.89360.81320.79190.17630.91690.05790.00990.92180.40570.41030.35290.1389第2章MATLAB7.0程序设计基础获取矩阵的元素A(row,column)具体的:A(r,c)A(r,:)A(:,c)A(:)A(s)A(L)第2章MATLAB7.0程序设计基础A=[269;428;351]A=269428351A(3,2)ans=5A(6)//等同A(3,2)ans=5Sum(A(1:3,3))//求第三列元素之和第2章MATLAB7.0程序设计基础12/18A=magic(3);B1=A(1,:),B12=A(1:2,:),B13=A([1,3],[1,3])B1=816B12=816357B13=8642第2章MATLAB7.0程序设计基础3.1、字符串创建字符串-使用单引号创建Country=‘China’;name=[‘LiYi’;’HuXu’]//创建二维字符串数组name=LiYiHuXuname=[‘LiuYing’;’HuXu’]//字符串长度要相同name=char(‘LiuYing’,’HuXu’)//使用char函数创建第2章MATLAB7.0程序设计基础Str2double函数将字符串单元数组转换为双精度值c={’37.294e-1’;’-58.375’;’13.796’};d=str2double(c)d=3.7294-58.375013.7960int2str:整型转换为字符串型num2str:实数转换为字符串型mat2str:矩阵转换为字符串型第2章MATLAB7.0程序设计基础比较字符串str1=‘hello’;str2=‘help’;strcmp(str1,str2)C=0//falsestr1==str2ans=11100//确定两个字符串中的相同字符strncmp:可选择字符串的前n+1个字符进行比较第2章MATLAB7.0程序设计基础聚合字符串num_chars=28;s=[‘Thereare‘int2str(num_chars)’charactershere’];s=sprintf(‘Thereare%dcharactershere\n’,num_chars);country=‘China’;province=‘SiChuan’;strcat(country,’,’,province)ans=China,SiChuan第2章MATLAB7.0程序设计基础3.2、多维数组索引生成A=[578;019;436];//创建一个二维数组A(:,:,2)=[104;356;987];//为A添加第三维MATLAB函数生成B=randn(4,3,2);//创建正态分布随机数的4×3×2的数组类似的函数有ones(),zeros()等cat函数生成B=cat(dim,A1,A2…)//按指定的维数将多个数组聚合第2章MATLAB7.0程序设计基础4.1、结构-调用字段的数组1、使用赋值语句创建结构数组student.name=‘Ludan’;//可包含任何类型的数据student.ID=02;student.test=[797573;807877.5;808585];student(2).name=‘Hanxu’;//扩展结构数组student(2).ID=10;student(2).test=[687068;788881;929093];2、使用struct函数str_array=struct(‘field1’,val1,‘fi