程序设计课件_第1页
程序设计课件_第2页
程序设计课件_第3页
程序设计课件_第4页
程序设计课件_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

一般介绍教学要求内容简介目录_见附件4前言_见附件3成绩确定选课要求教学大纲_见附件1教学安排_见附件2学习方法学习要求_见目录关于教材参考文献教学方法教学改革一般介绍教学要求内容简介目录_见附件4前第1章MATLAB语言入门语言简单易学代码短小高效计算功能强大绘图非常方便扩充能力强大帮助功能完整…R2006a2007a2008a发展历程基本特点平台外貌平台安装进入编译平台编译m文件或命令窗口输入函数命令设计可视化程序界面进一步编制m文件(底稿文件和函数文件)编译过程与完善程序学习文件编程步骤简单实例(1)使用函数在线帮助help函数命令=>名称通常是小写字母

(2)使用全部帮助。MATLAB7.0的自述文件,见图1-14计算1到100的平方和。x=1:100y=x.^2;z=sum(y)第1章MATLAB语言入门语言简单易学…发展历程基本特点平鼠标双击WinXP桌面上图标在WinXP“开始”菜单的“程序”选项中选择“MATLAB”退出MATLAB命令窗口键入“quit”或“Ctrl+Q”鼠标选择菜单fileExit

MATLAB————MATLAB使用简介————启动

MATLAB鼠标双击WinXP桌面上图标退出MATLAB————MATLMATLAB桌面命令窗口工作空间浏览命令历史窗口MATLAB桌面命令窗口工作空间浏览命令历史窗口命令窗口、编辑窗口、图形窗口————MATLAB使用简介————命令窗口、编辑窗口、图形窗口————MATLAB使用简介—>>n=0:1:63;S=sum(2.^n)S=1.8447e+019例2.

计算sinx

处的值>>clearx=pi./[8,6,4,3],y=sin(x)y=0.38270.50000.70710.8660————MATLAB使用简介————7/15例1.计算级数:S=1+2+22+23+···+263=>>n=0:1:63;S=sum(2.^n)例2.计算s2.1常量与变量2.2数组建立与引用2.3运算符2.4m文件2.5程序设计

MATLAB文件形式命令文件的命名与位置函数文件的命名与格式M文件的调试顺序结构分支结构循环结构2.1常量与变量2.2数组建立与引用2.3运算符特殊常量

MATLAB中特殊的固定变量称为常量。anspi

realmaxrealmininfNaNijdateclocktictoc2.1常量与变量_12.1.1特殊常量2.1常量与变量_1常数返回值ans默认变量名,保存最近的结果pi圆周率realmax最大正浮点数realmin最小正浮点数inf无限值i,j虚数单位NaN不合法的数值值,非数值date日期clock时间常数返回值ans默认变量名,数学表达式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.括号“()”可以改变优先次序数学表达式Matlab运算符Matlab表达式加a+b+a+复数:z=a+bi=reiθ一般形式:1)a+bi2)z=a+bi复数指令:real(z)给出复数z的实部;image(z)给出复数z的虚部;abs(z)给出复数z的模;angle(z)以弧度为单位计算z的复角。复数:z=a+bi=reiθ一般形式:1)a+bi复数指令2.1.2一般变量(可动变量)MATLAB依据变量值或对变量操作来识别变量类型,不要求事先对所使用变量进行声明或指定变量类型。

2.1.2一般变量(可动变量)MATLAB中的变量命名规则:(1)变量名区分大小写。(2)变量名长度不超过31位。(3)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点。

2.1常量与变量_2变量命名规则MATLAB中的变量作用域。MATLAB中的变量命名规则:2.1常量与变量_2变量命例如:合法变量名x1,x2,a,b,c,abc,Ma1,zhang_3xNo_1,alpha,·········不合法变量:x%1,2x,x变量,abc.变量名和函数名对字母的大小写敏感;

X,x,Z,z是不同变量例如:合法变量名x1,x2,a,b,c,abc,Ma创建变量在命令窗口中直接输入变量名称创建A=9A=9isvarname8th_column//确认变量名的合法性ans=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数据类型数据类型举例描述逻辑型数组magic(4MATLAB用format命令来控制输出格式,formatshort短格式

3.146formatlong

长格式3.14159265358979formatshorte短格式e3.1416e+000formatlonge长格式e3.141592653589793e+000formatrat

分数格式355/113formatbank银行格式3.14MATLAB用format命令来控制输出格式,formatwho

列出在MATLAB工作空间中已有的变量whos

列出驻留变量的同时,还给出维数及性质clear

删除内存中的变量(数据)clc

删除命令窗口的内容(已使用过的命令)home

光标移到命令窗口的左上角clf

删除图形窗口的内容↑

调出刚才使用过的命令quit

退出MATLABdir显示当前目录下文件及子目录MATLAB命令窗口的部分通用命令who列出在MATLAB工作空间中已有的变量MAT2.2数组_1建立与引用2.2数组

2.2.1建立数组

1

逐个元素输入法格式:x=[a,b,c]x=[abc]

[例2-1]

2.2数组_1建立与引用2.2数组2.2数组_1建立与引用2冒号法格式:x=初始量:步长:终止量x=i:j如果i<j,生成以i为初值,j为终值,1为步长的有限等差数列;x=i:j:k如果i<k,生成以i为初值,k为终值,j为步长的有限等差数列;x=i:-j:k如果i>k,生成以i为初值,k为终值,-j为步长的有限等差数列;[例2-2]

2.2数组_1建立与引用2冒号法2.2数组_1建立与引用3

特殊方法[linspace,logspace]x=linspace(初始量:终止量:数组元素个数)x=logspace(初始量:终止量:数组元素个数)

[例2-3]

[例2-4]

2.2数组_1建立与引用3特殊方法[linspace2.2数组_1建立与引用2.2.2数组应用格式:A(s):数组A的第s个元素

例如:A(3)=7A([1,3,5])=2A([1,3,5])=[2,6,7]2.2数组_1建立与引用2.2.2数组应用格式:A(s)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.2.1创建矩阵的常用方法:1.直接输入法;2.函数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阶范德蒙矩阵函数法构造特殊矩阵C=[]—产生空阵函数法构造特殊矩阵聚合矩阵通过连接一个或多个矩阵来形成新的矩阵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聚合矩阵通过连接一个或多个矩阵来形成新的矩阵例A=on获取矩阵的元素A(row,column)具体的:A(r,c)A(r,:)A(:,c)A(:)A(s)A(L)获取矩阵的元素A(row,column)具体的:A=[269;428;351]A=269428351A(3,2)ans=5A(6)//等同A(3,2)ans=5Sum(A(1:3,3))//求第三列元素之和A=[269;428;351]12/18A=magic(3);B1=A(1,:),B12=A(1:2,:),B13=A([1,3],[1,3])B1=816B12=816357B13=864212/18A=magic(3);B1=A(1,:),B13.1、字符串创建字符串-使用单引号创建Country=‘China’;name=[‘LiYi’;’HuXu’]//创建二维字符串数组name=LiYiHuXuname=[‘LiuYing’;’HuXu’]//字符串长度要相同name=char(‘LiuYing’,’HuXu’)//使用char函数创建3.1、字符串创建字符串-使用单引号创建Country=‘CStr2double函数将字符串单元数组转换为双精度值c={’37.294e-1’;’-58.375’;’13.796’};d=str2double(c)d=3.7294-58.375013.7960int2str:整型转换为字符串型num2str:实数转换为字符串型mat2str:矩阵转换为字符串型Str2double函数将字符串单元数组转换为双精度值c={比较字符串str1=‘hello’;str2=‘help’;strcmp(str1,str2)C=0//falsestr1==str2ans=11100//确定两个字符串中的相同字符strncmp:可选择字符串的前n+1个字符进行比较比较字符串str1=‘hello’;strncmp:可选择聚合字符串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聚合字符串num_chars=28;country=‘Chi3.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…)//按指定的维数将多个数组聚合3.2、多维数组索引生成A=[578;019;434.1、结构-调用字段的数组1、使用赋值语句创建结构数组=‘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,‘field2’,val2,…)4.1、结构-调用字段的数组1、使用赋值语句创建结构数组st3、获取数据str=student(2).namestudent(3).test(2,2)=87IDs=[student.ID]//包含所有的ID字段4、操作字段student(2).gender=‘boy’;//为数组的每个结构添加字段student=rmfield(student,’name’);//删除给定字段mean((student(2).test));//计算test数组的行均值total=sum([student.ID]);所有ID字段求和3、获取数据str=student(2).name4、操作字4.2、单元数组-能包含其它数组1、创建单元数组A[1,1]={[143;058;729]};A[1,2]={‘Liuzhong’};A[2,1]={3+7i;}A[2,2]={-pi:pi/10:pi};//通过矩阵单元索引访问数据或A{1,1}=[143;058;729];A{1,2}=‘Liuzhong’;A{2,1}=3+7i;A{2,2}=-pi:pi/10:pi;//通过矩阵内容索引访问数据4.2、单元数组-能包含其它数组1、创建单元数组A[1,1]2.2数组_2细胞数组与结构数组1

细胞数组[例2-8]

细胞数组是以单元为元素,每个单元可以包含其它类型数组,如实数矩阵、字符串数组、复数向量。细胞数组通常由{}创建,其数据通过数组下标引用。

2结构数组[例2-9]结构数组是根据属性名组织起来的不同类型数据集合,属性可以包含不同数据类型,结构数组数据通过属性名来引用。s=struct('field1',{},'field2',{},...)

2.2数组_2细胞数组与结构数组1细胞数组[例2-82.3运算符_1算术运算符

2.3.1算术运算符

算术加、减、乘及乘方与传统的基本相同;点运算(点乘、点乘方、点左除与点右除)是指元素点对点运算,要求参与运算变量结构相似。除法运算:a/b=a÷b;(ax=b,x=a\b’)2.3运算符_1算术运算符2.3.1算术运算符2.3运算符_2关系运算符,逻辑运算符

,逻辑函数2.3.2关系运算符==~=>=<=[例if(a(5)==1&a(6)<=1);a(7)=2;end;]2.3.3逻辑运算符&(和)|(或)~(非)2.3.4逻辑函数B1=all(a)%判断向量a中的每个元素是否为非零数[i,j,v]=find(A);%找出非零元素位置[i,j]及其值[v]2.3运算符_2关系运算符,逻辑运算符,逻辑函数2.3→2.3运算符_3字符串操作2.3.5字符串操作

1

字符串定义

s='str',name=['str1''str2''str3']

字符串中要输入“'”必须通过两个“'”实现。

2

字符串转换[例2-21,2->to]S=char(T)%正整数矩阵T转换为字符串矩阵S

int2str(A),num2str(A,k),num2str(A,format)

eval(S),str2num(S)表示将字符串S转化为数值。→2.3运算符_3字符串操作2.3.5字符串操作2.3运算符_4字符串操作[例][例2-21]将数值矩阵A转换成字符串矩阵。A=[;]

[算例代码]%例2-21A=[;];B1=int2str(A)B2=num2str(A,0)

B3=num2str(A,'%10.3f')%3位有效位,10位长注意运行结果。2.3运算符_4字符串操作[例][例2-21]将数值矩阵2.3运算符_5字符串比较与求值3字符串比较strcmp(str1,str2)表示将两个字符串进行比较4字符串求值

inline(exr),inline(expr,arg1,arg2,...)inline(exr)表示将字符串表达式转化为函数表达式arg1,arg2,...为字符串,其作用是定义变量

%[例2-24]

f=inline('5*sin(x)+3*cos(y)','x','y')subs(f,'x',1);2.3运算符_5字符串比较与求值3字符串比较2.3运算符_6字符串比较与求值

如果其中的字符串要用具体数值代替,可以使用命令subs。使用命令subs时不能同时替换多个变量、一次只能替换一个变量,见下例。

[例]计算f=inline('5*sin(x)+3*cos(y)','x','y')当x=1、y=2时的数值。symsxy;f=inline('5*sin(x)+3*cos(y)','x','y');A1=subs(f,x,1);A2=subs(A1,y,2);2.3运算符_6字符串比较与求值如果2.4m文件_1MATLAB中文件形式:.m.fig.mdlm文件“.m”分命令文件和函数文件两种。

2.4.1命令文件[例2-25]没有输入参数和输出参数、只是命令行的组合.

命令文件最好保存在MATLAB7\works子目录(工作目录)下(或非中文目录下).文件名命名与变量命名类似,文件名与内置函数及工具箱函数不应重名、与命令文件及工作空间中的变量也不应重名(最好不用中文名).

2.4m文件_1MATLAB中文件形式:.m2.4m文件_22.4.2函数文件函数文件一般包括:

函数定义行:function[输出参数]=函数名[输入参数]%返回变量多于一个时用方括号.%函数名与所存的m文件名应同名.%输入变量多于一个时用逗号”,”隔开.%第二行,概括性信息,用于lookfor(查找)命令%第二行到第一非注释行之间为注释,用于help命令

%空行后不显示。

%函数体注释语句以%开头,可在m文件任何地方、或一行代码的后面加注释语句,%后的代码部分为不执行部分。函数调用:嵌套调用与递归调用2.4m文件_22.4.2函数文件2.4m文件_3[例2-26]定义一个名为f.m的函数文件,并调用该函数。[算例代码]%例2-26a=1;b=2;c=f0226(a,b)%定义f0226.m函数%下述代码另存为工作目录下的f0226.m文件functionz=f0226(x,y)%在m文件中定义函数z=sin(x.^2)+y.^2-2*x-5;%函数表达式2.4m文件_3[例2-26]定义一个名为f.m的函数文件2.4m文件_42.4.3m文件的调试

1m文件错误的种类有语法错误和执行错误:语法错误一般是函数参数输入类型有误或者矩阵运算阶数不符;执行错误则是程序运行过程中出现溢出或死循环等造成。2错误的识别

命令文件:检查中间结果,去除“;”。

函数文件:变成命令文件。

3

调试过程

2.4m文件_42.4.3m文件的调试2.5程序设计2.5.1顺序结构2.5.2分支结构

1

条件语句(if-else-end)

2开关语句(switch-case-end)

%例2-33functiony=f0233(x)switchx,case{1,2},y=x*0.1;case{3,4},y=x*0.4;otherwise,y=x*0.5;end;

2.5.3循环结构

1

循环语句1(for-end)(目标:执行次数是否达到)

for循环控制变量=<初始值:步长:终值>,循环体,end

2

循环语句2(while-end)%例2-35(目标:条件是否达到)while(i==5),A(i)=1.5;end;A(i)

3循环语句的终止2.5程序设计2.5.1顺序结构演讲完毕,谢谢观看!演讲完毕,谢谢观看!一般介绍教学要求内容简介目录_见附件4前言_见附件3成绩确定选课要求教学大纲_见附件1教学安排_见附件2学习方法学习要求_见目录关于教材参考文献教学方法教学改革一般介绍教学要求内容简介目录_见附件4前第1章MATLAB语言入门语言简单易学代码短小高效计算功能强大绘图非常方便扩充能力强大帮助功能完整…R2006a2007a2008a发展历程基本特点平台外貌平台安装进入编译平台编译m文件或命令窗口输入函数命令设计可视化程序界面进一步编制m文件(底稿文件和函数文件)编译过程与完善程序学习文件编程步骤简单实例(1)使用函数在线帮助help函数命令=>名称通常是小写字母

(2)使用全部帮助。MATLAB7.0的自述文件,见图1-14计算1到100的平方和。x=1:100y=x.^2;z=sum(y)第1章MATLAB语言入门语言简单易学…发展历程基本特点平鼠标双击WinXP桌面上图标在WinXP“开始”菜单的“程序”选项中选择“MATLAB”退出MATLAB命令窗口键入“quit”或“Ctrl+Q”鼠标选择菜单fileExit

MATLAB————MATLAB使用简介————启动

MATLAB鼠标双击WinXP桌面上图标退出MATLAB————MATLMATLAB桌面命令窗口工作空间浏览命令历史窗口MATLAB桌面命令窗口工作空间浏览命令历史窗口命令窗口、编辑窗口、图形窗口————MATLAB使用简介————命令窗口、编辑窗口、图形窗口————MATLAB使用简介—>>n=0:1:63;S=sum(2.^n)S=1.8447e+019例2.

计算sinx

处的值>>clearx=pi./[8,6,4,3],y=sin(x)y=0.38270.50000.70710.8660————MATLAB使用简介————7/15例1.计算级数:S=1+2+22+23+···+263=>>n=0:1:63;S=sum(2.^n)例2.计算s2.1常量与变量2.2数组建立与引用2.3运算符2.4m文件2.5程序设计

MATLAB文件形式命令文件的命名与位置函数文件的命名与格式M文件的调试顺序结构分支结构循环结构2.1常量与变量2.2数组建立与引用2.3运算符特殊常量

MATLAB中特殊的固定变量称为常量。anspi

realmaxrealmininfNaNijdateclocktictoc2.1常量与变量_12.1.1特殊常量2.1常量与变量_1常数返回值ans默认变量名,保存最近的结果pi圆周率realmax最大正浮点数realmin最小正浮点数inf无限值i,j虚数单位NaN不合法的数值值,非数值date日期clock时间常数返回值ans默认变量名,数学表达式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.括号“()”可以改变优先次序数学表达式Matlab运算符Matlab表达式加a+b+a+复数:z=a+bi=reiθ一般形式:1)a+bi2)z=a+bi复数指令:real(z)给出复数z的实部;image(z)给出复数z的虚部;abs(z)给出复数z的模;angle(z)以弧度为单位计算z的复角。复数:z=a+bi=reiθ一般形式:1)a+bi复数指令2.1.2一般变量(可动变量)MATLAB依据变量值或对变量操作来识别变量类型,不要求事先对所使用变量进行声明或指定变量类型。

2.1.2一般变量(可动变量)MATLAB中的变量命名规则:(1)变量名区分大小写。(2)变量名长度不超过31位。(3)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点。

2.1常量与变量_2变量命名规则MATLAB中的变量作用域。MATLAB中的变量命名规则:2.1常量与变量_2变量命例如:合法变量名x1,x2,a,b,c,abc,Ma1,zhang_3xNo_1,alpha,·········不合法变量:x%1,2x,x变量,abc.变量名和函数名对字母的大小写敏感;

X,x,Z,z是不同变量例如:合法变量名x1,x2,a,b,c,abc,Ma创建变量在命令窗口中直接输入变量名称创建A=9A=9isvarname8th_column//确认变量名的合法性ans=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数据类型数据类型举例描述逻辑型数组magic(4MATLAB用format命令来控制输出格式,formatshort短格式

3.146formatlong

长格式3.14159265358979formatshorte短格式e3.1416e+000formatlonge长格式e3.141592653589793e+000formatrat

分数格式355/113formatbank银行格式3.14MATLAB用format命令来控制输出格式,formatwho

列出在MATLAB工作空间中已有的变量whos

列出驻留变量的同时,还给出维数及性质clear

删除内存中的变量(数据)clc

删除命令窗口的内容(已使用过的命令)home

光标移到命令窗口的左上角clf

删除图形窗口的内容↑

调出刚才使用过的命令quit

退出MATLABdir显示当前目录下文件及子目录MATLAB命令窗口的部分通用命令who列出在MATLAB工作空间中已有的变量MAT2.2数组_1建立与引用2.2数组

2.2.1建立数组

1

逐个元素输入法格式:x=[a,b,c]x=[abc]

[例2-1]

2.2数组_1建立与引用2.2数组2.2数组_1建立与引用2冒号法格式:x=初始量:步长:终止量x=i:j如果i<j,生成以i为初值,j为终值,1为步长的有限等差数列;x=i:j:k如果i<k,生成以i为初值,k为终值,j为步长的有限等差数列;x=i:-j:k如果i>k,生成以i为初值,k为终值,-j为步长的有限等差数列;[例2-2]

2.2数组_1建立与引用2冒号法2.2数组_1建立与引用3

特殊方法[linspace,logspace]x=linspace(初始量:终止量:数组元素个数)x=logspace(初始量:终止量:数组元素个数)

[例2-3]

[例2-4]

2.2数组_1建立与引用3特殊方法[linspace2.2数组_1建立与引用2.2.2数组应用格式:A(s):数组A的第s个元素

例如:A(3)=7A([1,3,5])=2A([1,3,5])=[2,6,7]2.2数组_1建立与引用2.2.2数组应用格式:A(s)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.2.1创建矩阵的常用方法:1.直接输入法;2.函数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阶范德蒙矩阵函数法构造特殊矩阵C=[]—产生空阵函数法构造特殊矩阵聚合矩阵通过连接一个或多个矩阵来形成新的矩阵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聚合矩阵通过连接一个或多个矩阵来形成新的矩阵例A=on获取矩阵的元素A(row,column)具体的:A(r,c)A(r,:)A(:,c)A(:)A(s)A(L)获取矩阵的元素A(row,column)具体的:A=[269;428;351]A=269428351A(3,2)ans=5A(6)//等同A(3,2)ans=5Sum(A(1:3,3))//求第三列元素之和A=[269;428;351]12/18A=magic(3);B1=A(1,:),B12=A(1:2,:),B13=A([1,3],[1,3])B1=816B12=816357B13=864212/18A=magic(3);B1=A(1,:),B13.1、字符串创建字符串-使用单引号创建Country=‘China’;name=[‘LiYi’;’HuXu’]//创建二维字符串数组name=LiYiHuXuname=[‘LiuYing’;’HuXu’]//字符串长度要相同name=char(‘LiuYing’,’HuXu’)//使用char函数创建3.1、字符串创建字符串-使用单引号创建Country=‘CStr2double函数将字符串单元数组转换为双精度值c={’37.294e-1’;’-58.375’;’13.796’};d=str2double(c)d=3.7294-58.375013.7960int2str:整型转换为字符串型num2str:实数转换为字符串型mat2str:矩阵转换为字符串型Str2double函数将字符串单元数组转换为双精度值c={比较字符串str1=‘hello’;str2=‘help’;strcmp(str1,str2)C=0//falsestr1==str2ans=11100//确定两个字符串中的相同字符strncmp:可选择字符串的前n+1个字符进行比较比较字符串str1=‘hello’;strncmp:可选择聚合字符串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聚合字符串num_chars=28;country=‘Chi3.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…)//按指定的维数将多个数组聚合3.2、多维数组索引生成A=[578;019;434.1、结构-调用字段的数组1、使用赋值语句创建结构数组=‘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,‘field2’,val2,…)4.1、结构-调用字段的数组1、使用赋值语句创建结构数组st3、获取数据str=student(2).namestudent(3).test(2,2)=87IDs=[student.ID]//包含所有的ID字段4、操作字段student(2).gender=‘boy’;//为数组的每个结构添加字段student=rmfield(student,’name’);//删除给定字段mean((student(2).test));//计算test数组的行均值total=sum([student.ID]);所有ID字段求和3、获取数据str=student(2).name4、操作字4.2、单元数组-能包含其它数组1、创建单元数组A[1,1]={[143;058;729]};A[1,2]={‘Liuzhong’};A[2,1]={3+7i;}A[2,2]={-pi:pi/10:pi};//通过矩阵单元索引访问数据或A{1,1}=[143;058;729];A{1,2}=‘Liuzhong’;A{2,1}=3+7i;A{2,2}=-pi:pi/10:pi;//通过矩阵内容索引访问数据4.2、单元数组-能包含其它数组1、创建单元数组A[1,1]2.2数组_2细胞数组与结构数组1

细胞数组[例2-8]

细胞数组是以单元为元素,每个单元可以包含其它类型数组,如实数矩阵、字符串数组、复数向量。细胞数组通常由{}创建,其数据通过数组下标引用。

2结构数组[例2-9]结构数组是根据属性名组织起来的不同类型数据集合,属性可以包含不同数据类型,结构数组数据通过属性名来引用。s=struct('field1',{},'field2',{},...)

2.2数组_2细胞数组与结构数组1细胞数组[例2-82.3运算符_1算术运算符

2.3.1算术运算符

算术加、减、乘及乘方与传统的基本相同;点运算(点乘、点乘方、点左除与点右除)是指元素点对点运算,要求参与运算变量结构相似。除法运算:a/b=a÷b;(ax=b,x=a\b’)2.3运算符_1算术运算符2.3.1算术运算符2.3运算符_2关系运算符,逻辑运算符

,逻辑函数2.3.2关系运算符==~=>=<=[例if(a(5)==1&a(6)<=1);a(7)=2;end;]2.3.3逻辑运算符&(和)|(或)~(非)2.3.4逻辑函数B1=all(a)%判断向量a中的每个元素是否为非零数[i,j,v]=find(A);%找出非零元素位置[i,j]及其值[v]2.3运算符_2关系运算符,逻辑运算符,逻辑函数2.3→2.3运算符_3字符串操作2.3.5字符串操作

1

字符串定义

s='str',name=['str1''str2''str3']

字符串中要输入“'”必须通过两个“'”实现。

2

字符串转换[例2-21,2->to]S=char(T)%正整数矩阵T转换为字符串矩阵S

int2str(A),num2str(A,k),num2str(A,format)

eval(S),str2num(S)表示将字符串S转化为数值。→2.3运算符_3字符串操作2.3.5字符串操作2.3运算符_4字符串操作[例][例2-21]将数值矩阵A转换成字符串矩阵。A=[;]

[算例代码]%例2-21A=[;];B1=int2str(A)B2=num2str(A,0)

B3=num2str(A,'%10.3f')%3位有效位,10位长注意运行结果。2.3运算符_4字符串操作[例][例2-21]将数值矩阵2.3运算符_5字符串比较与求值3字符串比较strcmp(str1,str2)表示将两个字符串进行比较4字符串求值

inli

温馨提示

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

评论

0/150

提交评论