MATLAB应用基础第二章

合集下载

MATLAB基础应用案例教程第二章

MATLAB基础应用案例教程第二章
• 程序命令:
上一页 下一页 返回
• 结果:
2.2 矩阵表示
上一页 下一页 返回
2.2 矩阵表示
• 2. 2. 4 稀疏矩阵
• 若矩阵中非零元素的个数远远小于矩阵元素的总数,且非零元素的分 布没有规律, 则称该矩阵为稀疏矩阵。
• 1 创建稀疏矩阵 • 语法格式:
• 稀疏矩阵的存储特点: 所占内存少,运算速度快。
上一页
返回
2.2 矩阵表示
• 2. 2. 1 矩阵的建立方法
• 【例 2 - 2】 输入下列矩阵
下一页 返回
2.2 矩阵表示
• 2. 2. 2 向量的建立方法
• MATLAB 中的每个数都是 1 × 1 的矩阵,数组或向量就是 1 × n 或 n × 1 的矩阵。 数组、向量和二维矩阵表示在本质上没有 任何区别,它们的维数都是 2,一切都是以矩阵形式保存的。
s, 它只保留最新值。
上一页 下一页 返回
2.1 变量的使用
• 2. 1. 4 全局变量
• 全局变量的作用域在整个 MATLAB 中有效,所有函数都能对它 进行存取和修改。 若在函数文件中声明变量为局部变量,则只在本 函数内有效,在该函数返回后,这些变量会自动在 MATLAB 工 作间中清除,这与文本文件是不同的。
n = max( j) ,在 S 中零元素被移除前计算最大值,[ i j s] 中的其中一行可能为 [ m n 0] 。 • (4) sparse([] 。[] 。[] 。m。n。0) 生成 m × n 所有元素 都是 0 的稀疏矩阵。 • (5) 当构造矩阵比较大,而非零元素位置又比较有规律时,可以考虑 用 sparse 函数。先构造 i、 j、 s,再自动生成矩阵。
上一页 下一页 返回

matlab课件 第二章 Matlab基础

matlab课件 第二章 Matlab基础

2017/1/10
19
矩阵操作
1、矩阵下标
A(m,n):提取第m行,第n列元素 A(:,n):提取第n列元素 A(m,:):提取第m行元素 A(m1:m2,n1:n2):提取第m1行到第m2行和第 n1列到第n2列的所有元素(提取子矩阵)。 A(:):得到一个长列矢量,该矢量的元素按矩阵的 列进行排列。
2017/1/10
14
3.建立大矩阵 大矩阵可由方括号中的小矩阵或向量建立起来。 4.利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是 e1:e2:e3 其中,e1为初始值,e2为步长(可以为负数),e3 为终止值。
例如:>>a=[1:2:10] a= 1 3 5 7 9
2017/1/10 15
短格式,5位有效数字浮点数
长格式,15位有效数字浮点数 3.333333333333334e+001 十六进制格式 2个十进制位 正、负或零 有理格式 4040aaaaaaaaaaab 33.33 + 100/3
10
复数和复数矩阵
MATLAB的矩阵元素可以是复数或复数表达式,在matlab 中,用i或j字元来表示虚部。 x=1-2*i 注意是2*i而不是2i real(x) 列出实部 imag(x) 列出虚部 conj(x) 计算共轭复数 abs(x) 计算复数大小 angle(x) 计算复数向量的夹角(弧度表示) y=exp(x) 以指数方式表示一个复数
命令语句的输入,也就完成了它的执行,直接便可得 到最终结果。例如
>>a=5; >>b=6; >>c=a*b,
结果显示
c= 30
2017/1/10
7

matlab基础教程第二章预习总结

matlab基础教程第二章预习总结

第二章MATLAB程序设计基础2.1 MA TLAB的特殊常量ans:用于保存运算结果toc:秒表停止pi:圆周率i或j:虚数单位,定义为√-1inf:无穷大realmax:最大正实数eps:系统运算时所确定的最小值realmin:最小正实数Nan或nan:不定量not a number nargan:函数实际输入参数个数tic:秒表开始执行nargout:函数实际输出参数个数2.2 MA TLAB的变量在MA TLAB中变量用来读取值,并进行运算,最后在存入内存;变量是数值计算的基本单元。

变量不需要事先声明,也不需要预先定义变量的类型,当变量在语句中第一次合法出现时,MA TLAB会自动生成变量,并根据变量的操作上下文确定其类型,并分配适当的存储空间,当变量再次合法出现时,系统会自动更新其内容。

(注:运算表达式中不能出现未定义的变量)2.3 变量名MATLAB的变量名必须一字符开头是字母和数字的任意组合,允许使用下划线。

MATLAB中变量的命名规则:(1)变量名必须以字符开头,后面可以跟字母、数字、下划线,但是不能使用空格和标点符号;(2)变量名区分大小写,A和a表示的事两个不同的变量;(3)变量名可以任意长,但只有前面的63个字符被使用,超过部分将被忽略;2.4 变量的显示格式数据的显示格式由format命令控制。

format只影响结果的显示,不影响计算和存储。

2.5 变量的作用域(1)局部变量局部变量在函数中定义的变量,只能被定义它的函数访问。

在命令文件中定义的变量,当在命令窗口中调用该命令文件时,变量存在基本工作区中;当从函数调用该命令文件时,起变量存在与函数的工作区中。

局部变量不用特别定义,只要给出合法变量名,MATLAB会自动建立。

(2)全局变量:指几个函数共享的变量,其名字最好全用大写字母这样可增强代码的可读性减少重复定义变量的机会。

每个使用它的函数都要用global函数声明它为全局变量。

MATLAB-2基础入门

MATLAB-2基础入门
format 只改变变量的输出格式, 但不会影响变量的值!
数值显示格式设置
缺省显示格式:简洁的短(short g)格式 窗口命令及语法格式:format 显示格式 关键字 如:format long %15位数字显示
21
各种 format 格式
格式
format
format short format long
为便于学习,以算例方式叙述,并通过 算例归纳一些MATLAB最基本的规则和语法结 构。
【例】
求 [12 2 (7 4)] 32 的算术运算结果。 本例演示:最初步的命令输入形式和必需的 操作步骤。
(1)用键盘在MATLAB命令窗中输入以下内容
>> (12+2*(7-4))/3^2
(2)在上述表达式输入完成后,按 [Enter] 键,该命令被执行,并显示如下结果。
29
Matalab7.1的workspace窗口
Matalab6.5的workspace窗口
32
工作空间浏览器主要功能及其操作方法
四、历史指令窗(Command History)
历史窗口:
首先记录每次启动时间;并记录在命令窗口输入 命令,此次运行期间,输入的所有命令被记录为 一组,并以此次启动时间为标志。
>>radius=5.2; %圆的半径 >>area=pi*5.2^2, circle_len=2*pi*5.2 area = 84.9487 circle_len = 32.6726
以上两例,命令行中用到了等号“=” 。 计算结果不再赋给“ans”,而是赋给 用户指定的变量y、area、circle_len 。 无论是预定义变量还是用户自定义变量 都被存储在系统的工作空间内,即系统 定义的一个存储窗口变量的内存空间。 Who、whos命令用来显示工作空间的 变量 clear命令用来清除工作空间的变量。

MATLAB基础与应用教程第2章

MATLAB基础与应用教程第2章


(3)多分支if语句: if 条件1 语句块1 elseif 条件2 语句块2 …… elseif 条件n 语句块n else 语句块n+1 end
【例2.4】输入一个字符,若为大写字母,则输出其对应的小 写字母;若为小写字母,则输出其对应的大写字母;若为数 字字符则输出其对应数的平方,若为其他字符则原样输出。 c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(lower(c)); elseif c>='a'& c<='z' disp(upper(c)); elseif c>='0'& c<='9' disp(str2num(c)^2); else disp(c); end
执行M文件的方法。 ● 掌握利用if语句、switch语句实现选择结构的方法。 ● 掌握利用for语句、while语句实现循环结构的方法。 ● 熟悉利用向量运算来代替循环操作的方法。 ● 掌握定义和调用MATLAB函数的方法。
2.1 M文件
2.数据的输出 MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为 disp(输出项) 其中,输出项既可以为字符串,也可以为矩阵。例如: A='Hello,World!'; disp(A) 【例2.2】求一元二次方程ax2 + bx + c = 0的根。 由于MATLAB能进行复数运算,所以不需要判断方程的判别式,而直接 根据求根公式求根。程序如下: a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);

第二章Matlab 基本功能

第二章Matlab 基本功能

>> A=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16] A=
1234 5678 9 10 11 12 13 14 15 16
>> B=[1,sqrt(25),9,13 2,6,10,7*2 3+sin(pi),7,11,15 4,abs(-8),12,16]
B= 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16
3.利用M文件建立矩阵
对于比较大且比较复杂的矩阵,可以为它专门建立一个M
文件。下面通过一个简单例子来说明如何利用M文件创建
矩阵。
A=[1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,20 21,22,23,24,25]
(1)启动有关编辑程序或MATLAB文本 编辑器,并输入待建矩阵:
3.访问多个元素
操作符“:”可以用来表示矩阵的多个元素。 若A是二维矩阵,其主要用法如下: Ø A(:,:) 返回矩阵A的所有元素。 Ø A(i,:) 返回矩阵A第i行的所有元素。
Ø A(i,k1:k2) 返回矩阵A第i行的自k1到k2 列的所有元素。
Ø A(:,j) 返回矩阵A第j列的所有元素。 Ø A(k1:k2,j) 返回矩阵A第j列的自k1到k2
>> a= linspace(-6,6,4) a=
-6 -2 2 6
>> b=logspace(0,2,4) b=
1.0000 4.6416 21.5443 100.0000
2.2.2 矩阵下标引用
本小节将介绍通过矩阵 下标 来存取元素值 的方法,包括访问单个元素、线性引用元 素和访问多个元素等。

第二章MATLAB基础

第二章MATLAB基础
0~ 1.8447e+19
-128~ 127
-32768~32767
-2147483648 ~2147483647 -9.2234e+18~9.2234
e+18
4
【例 2.1】通过转换函数创建整数类型 >> x=102; >> y=102.49; >> z=102.5;
>> xx=int32(x)
>> x=uint32(210);y=single(32.356);z=15.254;
>> xy=x*y
%错误的运算式
错误使用 .*
整数只能与相同类的整数或标量双精度值组合使用。 %系统提示的错误原因
>> xz=x*z
xz =
3203
10
>> whos Name Size x 1x1 xz 1x1 y 1x1 z 1x1
ceil(a)
向 不 小 于 a的最接近的整数 取整
ceil(4.3)结果为5 ceil(4.5)结果为5
7
数据类型参与的数学运算与MATLAB中默认的双精度 浮点运算不同。当两种相同的整数类型进行运算时,
结果仍然是这种整数类型;当一个整型数值与一个双
精度浮点类型数值进行数学运算时,计算结果是这种 整数类型,取整采用默认的四舍五入方式。
21
作为一种编程语言,MATLAB中为编程保留了一些 关 键 字 : break 、 case 、 catch 、 classdef 、 continue 、 else 、 elseif 、 end 、 for 、 function 、 global 、 if 、 otherwise、parfor、persistent、return、spmd、switch、 try、while,这些关键字在程序编辑窗口中会以蓝色 显示(可以自己改变),它们是不能作为变量名的,否 则会出现错误。

MATLAB编程及应用 李辉 PPT课件 第2章 MATLAB基本计算和基础知识

MATLAB编程及应用 李辉 PPT课件 第2章 MATLAB基本计算和基础知识

2.2.2 系统预定义变量
MATLAB系统提供了一些用户不能清除的特殊变量,
即系统预定义变量。
MATALB系统预定义变量及其含义
预定义变量名
含义
ans pi eps nan或NAN inf i或j
运算结果默认变量名 圆周率 浮点数的精度,也是系统运算时确定的极小值 非数,如0/0 无穷大,如1/0 虚数标志,i=j=sqrt(-1)
1.0000 + 2.0000i >> b=3+4*j b=
3.0000 + 4.0000i
2.3.2 逻辑类型
MATLAB本身并没有专门提供逻辑类型,而借用整型来描
述逻辑类型数据。MATLAB规定,逻辑数据真(true)为1、
逻辑数据假(false)为0。
>> 2<3 ans =
logical 1 >> 2>3 ans = logical 0
>> sin(pi/3) ans =
0.8660
➢ 复数的计算:MATLAB还具有超越计算器的功能, 它认识复数,能够进行复数的计算。
>> (2+3i)+(4+5i) ans =
6.0000 + 8.0000i
Байду номын сангаас
2.2 变量
变量是指在程序执行过程中其值可以变化的量。
变量
用户自定义变量 系统预定义变量
2.3 数据类型
MATLAB数据类型
数值类型 逻辑类型 字符串类型 单元类型 结构类型
2.3.1 数值类型
数值类型分类方法
根据数据存 储空间和方 式分类
根据数据结 构分类
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第2章M ATLAB程序设计MATLAB语言为解释型程序设计语言。

在程序中可以出现顺序、选择、循环三种基本控制结构,也可以出现对M-文件的调用(相当于对外部过程的调用)。

由于 MATLAB开始是用FORTRAN语言编写、后来用 C语言重写的,故其既有FORTRAN的特征,又在许多语言规则方面与C语言相同。

2.1 顺序结构语句在顺序结构语句中,包括表达式语句、赋值语句、输入输出语句、空语句等。

2.1.1 表达式语句格式:表达式, %显示表达式值表达式; %不显示表达式值表达式 %显示表达式值如:x + y,sin(x);–5最后的表达式值暂保存在变量ans中。

2.1.2 赋值语句格式:v = 表达式, %结果送v并显示v v = 表达式; %结果送v不显示v v = 表达式 %结果送v并显示v 2.1.3 空语句格式:,;2.1.4 输入语句1、input语句(实际上是函数)格式1:input(提示字符串)功能:显示提示字符串,可输入数字、字符串(两端用单引号括起)、或表达式格式2:input(提示字符串,'s')功能:显示提示字符串,并把输入视为字符串2、yesinput语句格式:yesinput(提示字符串,缺省值,值范围)功能:显示提示字符串和缺省值,若只打入回车则以缺省值作为输入值,若输入的值不在指定范围内则认为输入无效,B并等待用户重新输入。

如:t=yesinput('指定线的颜色',…'red','red|blue|green')运行结果如下:指定线的颜色(red):yellow %不在值内指定线的颜色(red):blue %重输t =bluex=yesinput('输入元素个数',10,[1,20])运行结果如下:输入元素个数(10):x =103、Keyboard语句格式:Keyboard功能:暂停M-文件的执行,并等待用户从键盘输入命令以查看或改变变量的值,直到输入return命令而返回相应的M-文件继续执行。

本语句用于调试M-文件。

4、pause语句格式1:pause功能:暂停,敲下任一键继续格式2:pause(n)功能:暂停n秒格式3:puase on功能:本命令后的pause语句有效格式4:pause off功能:本命令后的pause语句无效5、menu语句格式:menu('菜单名',S1,S2,…,S k)功能:生成一个按钮式菜单系统其中:字符串S1,S2,…,S k为菜单项(K≤32)。

函数返回值为用户选中的菜单项号。

如M-文件,menu_d.m如下:%选择一种颜色while 1k=menu('选择一种颜色','红色',…'黄色','兰色','绿色','白色','关闭'); if k = = 1 color = 'Red'elseif k = = 2 color = 'Yellow'elseif k = = 3 color = 'Blue'elseif k = = 4 color = 'Green'elseif k = = 5 color = 'White'elseif k = = 6 breakendend2.1.5 输出语句1、直接终端显示当一个表达式、赋值语句等语句用逗号或者回车作为结尾符,而不是分号作为结尾符时,该表达式或赋值语句的运行结果均在终端上显示出来。

2、diary语句(日记)格式1:diary文件名功能:打开指定的文件并将该语句之后终端显示的内容(包括键入的命令和输出结果)记入该文件。

格式2:diary off功能:暂停记入显示内容到指定的文件格式3:diary on功能:继续记入显示内容到指定的文件diary语句可产生一个日志文本文件,为以后书写报告或编辑M-文件提供素材。

3.disp 语句格式:disp(x)功能:显示x的值,但不显示x的名4.sprintf 语句格式:[Str,ErrMsg] = SPRINTF(格式串,表达式1,...)其中:格式串与C语言的规定一致Str存放结果的功能:按照格式串的规定把各表达式的实部分别转换为字符串并存入Str,若有错误,则把错误信息存入ErrMsg如:sprintf('%0.5g',(1+sqrt(5))/2) 1.618sprintf('%0.5g',1/eps) 4.5036e+15sprintf('%15.5f',1/eps) 4503599627370496.00000 sprintf('%d',round(pi)) 3sprintf('%s','hello') hellosprintf('The array is %dx%d.',2,3) The array is 2x3.sprintf('\n') 换行2.1.6变量值的保存与恢复1、保存工作空间中的变量到文件中格式1:save 文件名功能:保存工作空间中的全体变量到指定文件(扩展名设定为.mat)中。

若省略文件名,则文件名缺省为"MATLAB.mat"。

该文件为二进制格式,称为MAT文件。

格式2:save 文件名 变量名表 [-append]功能:保存指定的变量到文件中。

变量名表中两变量之间用逗号或空格分开。

格式3:save 文件名 变量名表 -ascii [-tabs]功能:用8位数、ASCII码格式保存指定的变量到文件中。

格式4:save 文件名 变量名表 -ascii –double[-tabs] 功能:用16位数、ASCII码格式保存变量到指定文件中。

2、保存工作空间中的变量到C风格文件中相关语句(后面详介):fid=fopen(文件名,权限串)fwrite(fid,表达式,精度串)%二进制fprintf(fid,格式串,表达式)fclose(fid)3、恢复变量到工作空间格式1:load功能:从"MATLAB.mat"文件中恢复变量格式2:load 文件名功能:从指定文件中恢复变量格式3:load 文件名 -ascii功能:从无扩展名的文本文件中生成一个以文件名为变量名的数组(文件中含有m行、n列数据)。

格式4:load 文件名.扩展名 -mat功能:从具有指定扩展名的MAT文件中恢复变量。

格式5:load 文件名.扩展名功能:从具有指定扩展名的文本文件生成与文件名同名的数组(文件中含有m行、n列数据)。

例如:设文本文件coff.txt中的数据为:1,2,3,4,56,7,8,9,10执行命令load coff.txt则命令coff将显示coff=1 2 3 4 567 8 9 10格式6:[A, Count] = fread(fid,size,precision)[A,Count] = fscanf(fid,format,size)其中:precision可为:MATLAB C or Fortran Description'uchar' 'unsigned char' unsigned character,8 bits.'schar' 'signed char' signed character,8 bits.'int8' 'integer*1' integer, 8 bits.'int16' 'integer*2' integer, 16 bits.'int32' 'integer*4' integer, 32 bits.'int64' 'integer*8' integer, 64 bits.'uint8' 'integer*1' unsigned integer,8 bits.'uint16' 'integer*2' unsigned integer,16 bits.'uint32' 'integer*4' unsigned integer,32 bits.'uint64' 'integer*8' unsigned integer,64 bits.'single' 'real*4' floating point,32 bits.'float32' 'real*4' floating point,32 bits.'double' 'real*8' floating point,64 bits.'float64' 'real*8' floating point,64 bits.功能:从C风格文件中读入size个数据到A,Count 为实际读入数据个数2.2选择结构2.2.1 if语句格式1:if 表达式语句组end功能:若表达式值的实部或值为真,则执行语句组格式2:if 表达式语句组1else语句组2end功能:若表达式值实部非0或值为真,则执行语句组1,否则执行语句组2。

格式3:if 表达式1语句组1elseif 表达式2语句组2┆elseif 表达式n语句组nelse语句组n+1end功能:若表达式1为真则执行语句组1否则,若表达式2为真则执行语句2 ┆否则若表达式n为真则执行语句组n 否则执行语句组n+12.2.2 switch语句格式:switch 表达式case e1语句组1case {ex1,ex2,ex3,...}语句组2...case {exp1,exp2,exp3,...}语句组notherwise,语句组n+1end功能:若表达式的值为e1则执行语句组1否则,若表达式的值为ex1,ex2,ex3,…中的一个,则执行语句组2…否则,表达式的值为exp1,exp2,exp3,…中的一个,则执行语句组n否则,则执行语句组n+1例如:switch lower(METHOD)case {'linear','bilinear'}disp('Method is linear')case 'cubic'disp('Method is cubic')case 'nearest'disp('Method is nearest')otherwisedisp('Unknown method.')end(switch语句是5.0以上版本中增加的,可以用更加简洁的方式描述多向选择)例如:clear;建元胞数:a,b,c,d%创组for i=1:10;a{i}=89+i;b{i}=79+i;c{i}=69+i;d{i}=59+i;end;c=[d,c];Name={'李洪斌','赵向阳','龚力','伟王立','马书玉'};Mark={72,83,56,94,100};Rank=cell(1,5);%S=struct('Name',Name,'Marks',Mark,'Rank',Rank);%for i=1:5switch S(i).Markscase 100S(i).Rank='满分';case aS(i).Rank=' 优秀';case bS(i).Rank=' 良好';case cS(i).Rank=' 及格';otherwiseS(i).Rank='不及格';endend%disp(['学生姓名 ',' 得分 ',' 级等']);for i=1:5;disp([S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i ).Rank]);end;等学生姓名得分级李洪斌 72 及格赵向阳 83 良好龚力 56 不及格王立 94 优秀伟玉 100 满分马书2.2.3 try语句格式2:try语句组1catch语句组2end功能:执行语句组1,若执行语句组1的过程中发生错误则执行语句组2。

相关文档
最新文档