第二章 MATLAB程序设计基础

合集下载

《MATLAB基础与编程入门》课件第2章

《MATLAB基础与编程入门》课件第2章
是一行n列的二维数组(n表示元素的个数),如果需要创 建列向量,即n行一列的二维数组(n表示元素的个数), 则需要使用分号作为元素与元素之间的间隔或者直接使 用转置运算符“'”,参见例子2-6。
例子2-6 创建列向量。 直接输入元素的方法创建列向量 >> A = [1;2;3;4;5;6] A= 1 2 3 4 5 6
例子2-3 使用冒号运算符创建向量。 在命令行窗口中键入:
>> x = 1:0.01:1.1 x=
Columns 1 through 6 1.0000 1.0100 1.0200 1.0300 1.0400 1.0500
Columns 7 through 11 1.0600 1.0700 1.0800 1.0900 1.1000
第二种创建向量的方法可以利用运算符——“:”,参 阅例子2-2。
例子2-2 利用冒号运算符创建向量。 在命令行窗口中键入:
>> x = 1:10
x=
1 2 3 4 5 6 7 8 9 10
>> whos
Name
Size
Bytes Class
x
1x10
80 double array
在例子2-2中使用冒号运算符创建了具有10个元素的向量。 利用冒号运算符创建向量的基本语法如下:
2.2 创 建 向 量
从编程语言的角度上看,向量也就是一维数组。在 MATLAB中创建向量可以使用不同的方法,最直接也最简单的 方法就是逐个输入向量的元素,见例子2-1。
例子2-1 利用逐个输入元素的方法在MATLAB中创建向量。
在命令行窗口中键入:
>> x = [1 3 pi 3+5i]

matlab使用教程2-2

matlab使用教程2-2

第2章 Matlab语言程序设计 章 语言程序设计
写二进制文件: 用fwrite写二进制文件: 写二进制文件 COUNT=fwrite(Fid, A, precision) 例: Fid=fopen(‘test.dat’, ‘w’); cnt=fwrite(Fid, A, ‘float’) fclose(Fid); 读取ASCII数据文件: 数据文件: 用fscanf读取 读取 数据文件 [A, COUNT]=fscanf(Fid, format, size) format用以控制读取的数据格式,由%加上格式符组成, 用以控制读取的数据格式, 加上格式符组成, 用以控制读取的数据格式 常见的格式符有: 常见的格式符有:d, i, o,u, x, e, f, s, c。 。 例:fscanf(Fid, ‘%s’); fscant(Fid, ‘%6.2f’); fscanf(Fid, “%5d’);
第2章 Matlab语言程序设计 章 语言程序设计
d) 其它与流程控制有关的语句
if
if
break语句循环结构 语句循环结构 语句
continue 语句循环结构 语句循环结构
第2章 Matlab语言程序设计 章 语言程序设计
pause 指令使程序运行停止,等待用户按任意键继续; 指令使程序运行停止 等待用户按任意键继续; 使程序运行停止, input 指令提示用户从键盘输入数值、字符串或表达 指令提示用户从键盘输入数值 提示用户从键盘输入数值、 并接受输入; 式,并接受输入; disp指令在屏幕上显示字符串; 指令在屏幕上显示字符串 指令在屏幕上显示字符串 echo on指令显示其后所有执行文件的指令; 指令显示其后所有执行文件的指令 指令显示其后所有执行文件的指令; echo off指令关闭其后所有执行文件的指令显示。 指令关闭其后所有执行文件的指令显示 指令关闭其后所有执行文件的指令显示。

第二章 MATLAB基础

第二章 MATLAB基础
27
3 )向量是一个数学量,一般高级语言中也未引入, 它可视为矩阵的特例。从MATLAB的工作区可以查 看到:一个 n 维的行向量是一个 1 × n 阶的矩阵,而 一个n维的列向量则当成n×1阶的矩阵。 如A=[1 2 3 4]就是一个4维的行向量。也可看成是 一个一维数组,还要看成是一个1×4阶的矩阵。
3
数据类型转换函 数 uint8 uint16 uint32 uint64 int8 int16 int32 int64
说 明 无符号8位整数 无符号16位整数 无符号32位整数 无符号64位整数 有符号8位整数 有符号16位整数 有符号32位整数 有符号64位整数
字节数 1 2 4 8 1 2 4 8
22
【例 2.8】变量赋值 >> a=3.14 a= 3.1400 >> class(a) %函数class用来是判断变量数据类 型的 ans = double %变量a是双精度的浮点型数据
23
>> a='hello!' hello! >> class(a) ans = char
%变量a重新赋值
13
>> whos Name Size a 1x1 x 1x1 y 1x1 z 1x1
Bytes Class Attributes 16 double complex 4 int32 4 int32 8 int32 complex
14
2.2MATLAB的常量及变量
2.2.1常量 常量是程序语句中取不变值的那些量。如表达式 y=0.314*x,其中就包含一个0.314这样的数值常数,它 便是一个数值常量。而在另一表达式s='Hello'中,单引 号内的英文字符串“Hello”则是一个字符串常量。

第二章_MATLAB语言基础_第1节-赵亦欣

第二章_MATLAB语言基础_第1节-赵亦欣
ans的值将在下一条表达式语句执行后被刷新。
第2章 MATLAB语言基础
【例2.8】 表达式语句。 >> sqrt(2)*exp(-1*3) ans = 0.0704 >> 8*3+6/4 ans = 25.5000
表达式语句 运算结果 执行下一条 表达式语句 后,结果将 被刷新
第2章 MATLAB语言基础
第2章 MATLAB语言基础
2.1 基础知识
2.1.3 变量和语句
变量名区分字母大小写;不超过31个字 符,31个以后的字符将被忽略,字符之间不 能有空格;必须以字母打头,之后可以是任意 字母、数字或下画线;不允许使用标点符号。
第2章 MATLAB语言基础
MATLAB的一条命令行就是一条语句,
格式与书写数学表达式相近。 在命令窗输入语句,该语句可被解释运 行并给出运行结果。
第2章 MATLAB语言基础
(1)永久变量不能用clear命令清除; (2)永久变量不响应Who, Whos命令; (3)永久变量可以等于表2-1中的值; (4)被赋值的永久变量,在clear命令清除内 存或命令窗关闭再打开后,将被设为默认值;
(5)允许被0除。
第2章 MATLAB语言基础
2.1 基础知识
第2章 MATLAB语言基础
【例2.11】复数矩阵的生成及运算。 >> A=[1 2; 3 4]+[5 6; 7 8]*I % 复数矩阵的输入。 分别由实部矩阵和虚部矩阵组合而成 A= 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i >> B=[1+2i 3+4i; 5+6i 7+8i] % 复数矩阵的输入。 直接由复数构成矩阵 B= 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i >> C=A*B % 复数矩阵相乘。 复数矩阵乘法, 1.0e+002表 示标量100,矩阵运算中,存在直 C= 角坐标和极坐标之间的转换 1.0e+002 * -0.3500 + 0.4900i -0.5100 + 0.7700i -0.3900 + 0.7700i -0.5500 + 1.2100i

第2章 MATLAB 语言程序设计基础

第2章 MATLAB 语言程序设计基础

14
3.type — 可显示指定文件的 全部内容
• type myfile.m
• 与dos下的用法完全一样
2014-11-30
系统仿真与MATLAB---广东工业大学自动化学院
15
4.delete — 删除指定文件
• del abc — 删除当前目录下的abc文

• del c:\matlab\aaa.m
MATLAB----
2014-11-30
广东工业大学自动化学院
21
• path(path,’c:\mydir’) 将根目录下 的 mydir 临时纳入搜索路径 • 可将你需要的目录永久纳入 matlab搜索路径 打开c:\matlab\matlabrc.m文件
在所有搜索路径后加上 ‘c:\mydir\;’,…

2014-11-30 系统仿真与MATLAB---广东工业大学自动化学院
29

MATLAB 语言的变量名规则
由一个字母引导,后面可以为其他字符 区分大小写 Abc ABc 有效 MYvar12, MY_Var12 和 MyVar12_ 错误的变量名 12MyVar, _MyVar12


其他数据类型
uint8,常用于图像表示和处理,8位 int8( ), int16( ), int32( ),uint16( ), uint32( )

2014-11-30
系统仿真与MATLAB---广东工业大学自动化学院
31
符号型变量数据类型

符号型,sym(A), 常用于公式推导

变量声明

采用变精度函数求值
【例2-1】求出自然对数底 的前300位有效数字

控制系统仿真_薛定宇第二章_MATLAB语言程序设计基础

控制系统仿真_薛定宇第二章_MATLAB语言程序设计基础

控制系统仿真与CAD 国家级精品课程
2014-12-31
24/70 24
2.4.4 匿名函数与inline函数

不用编写*.m,定义函数的方法
可以动态地定义函数,在科学运算中有用 二者功能重复,后者远差于前者,不再使用


匿名函数: 举例
控制系统仿真与CAD 国家级精品课程
2014-12-31

控制系统仿真与CAD 国家级精品课程
2014-12-31
3/70 3
2.1.1 常量与变量

常量(保留字符串)
eps: 机器的浮点运算误差限,默认值 i和j:虚数单位,-1的平方根,i=sqrt(-1) Inf: 无穷大量,-Inf为负无穷大 NaN:不定式(Not a Number) pi:圆周率p的双精度浮点表示
25/70 25
2.5 二维图形绘制



可以绘制出各种二维曲线 可以由数据绘图,也可以由格式绘图 本节主要内容
基本二维图形绘制语句 带有其他选项的绘图函数 二维曲线的标注方法 在MATLAB图形上添加文字标注 特殊图形绘制函数及举例 隐函数的曲线绘制

控制系统仿真与CAD 国家级精品课程


符号型数据结构

syms 命令申明符号变量
控制系统仿真与CAD 国家级精品课程
2014-12-31
5/70 5

vpa(A) 显示符号变量

例2-1 显示e的前300位 其他数据结构



int8() 、int16() 、int32() 、uint16() 和 uint32() 字符串型数据:MATLAB字符串是用单引号括起来的 多维数组:三维数组是一般矩阵的直接拓展。 单元数组:多变量系统的频域响应数据存储 类与对象:传递函数对象、状态方程对象

第二章 MATLAB语言的使用与程序设计

第二章 MATLAB语言的使用与程序设计

命令历史窗口:显示已执行过的命令。在窗口的某一命令上单击鼠标 右键,会弹出菜单,对所选命令进行操作。


当前路径窗口:提供了当前路径文件的操作
演示
MATLAB的搜索路径
搜索路径是一系列文件路径的组合。当程序和命令执行 时, MATLAB 在搜索路径中查找程序或命令运行所需的函数文 件。 MATLAB 在执行搜索时按照规定的顺序。如:在命令窗口 中输入example,MATLAB将按下面的步骤来处理: 1.检查example是不是一个变量,如果是,则返回变量的值;
本章重点:
MATLAB工作环境掌握 主要文件类型及常用命令
矩阵、变量、表达式、常用函数
MATLAB语言的基本语句结构及程序调试方法
一、MATLAB系统简介
MATLAB的主要组成部分
1.MATLAB语言体系:MATLAB 语言是一种以矩阵运算为基础的高级 语言,具有条件控制、函数调用、数据结构、输入输出及面向对象等 程序语言特征,可以进行程序设计。
6 )对矩阵的特殊操作: rot90(a) 将 a 矩阵旋转 90 度、 fliplr(a) 将 a 矩阵的列反序、 flipud(a) 将 a 矩阵的行反序、diag(a) 将向量 a 构 成对角阵( 元素放在主对角线上 )---a 为向量、triu(a) 提取矩阵的上 三角部分、reshape改变矩阵的阶数,按列的顺序重排。
逻辑运算符: 在MATLAB中,逻辑运算符有3种。 & 逻辑与。当运算双方对应元素都为非零时; 结果为1,否则,结果为0。
| 逻辑或。当运算双方对应元素有一个为非零 时;结果为1,否则,结果为0。
~ 结果为0。 逻辑非。当元素的值为 0 时,结果为 1 ,否则,
例: a=[1 0 3;0 –1 6] , b=[-1 0 0;0 5 0.3] ,计算两矩

第二章 MATLAB程序设计基础

第二章 MATLAB程序设计基础




扩展名均为.m
注释语句以%开头
2.5 M文件
命令文件:

例:ex2_5_1
命令行的组合 产生的所有变量会保留在工作空间 命令窗口输入文件名,回车;或者在MATLAB环境 下打开文件后,在Editor窗口下“运行”或“F5”; 注意:(R2009a以前的版本)在文件夹下双击打开 m文件后不能运行 文件命名:不能用中文,短横线和纯数字,不能有 空格,不要与MATLAB内置函数和工具箱中的函数 重名,不要与工作空间中的变量重名
2.3 运算符
3.逻辑运算符

“与”和“或”有相同的优先级,从左至右 依次执行,都低于“非”的优先级
输入
a b

a&b

a|b
异或
xor(a,b)

~a
0 0 1 1
0 1 0 1
0 0 0 1
0 1 1 1
0 1 1 0
1 1 0 0
2.4 常用数学函数

函数的自变量规定为矩阵变量,因而运算的结果是一个与 自变量同维数的矩阵。
2.5 M文件
M文件的调试: 注意查看command窗口的错误提示 matrix dimensions must agree——矩阵 维数不一致 尽可能使用有意义的变量名和文件名 解释执行
2.6 程序设计
流程控制结构: 顺序结构 分支结构: if-else-end switch-case-end 循环结构: for-end while-end break, continue
2.2 数组
1.数组的建立

逐个元素输入法
元素直接排列在方括号内,行与行之间用分号隔开, 每行内的元素使用空格或逗号隔开。

第二章 MATLAB程序设计基础

第二章 MATLAB程序设计基础

二、生成选择菜单
menu函数可生成一个选择式的菜单,使用户能够选择输 入。其调用格式为:k=menu(‘menuname’,s1,s2……si),其中k 返回调用值,si为字符串(菜单项,最多为32项)。 例:while 1 k=menu('choose a color','red','blue','close'); if k==1 x='red' elseif k==2 x='blue'
信控学院电子教研室 mashang21cn@
24
例:
编写ask.m文件 a=input(‘please input a number:’);
பைடு நூலகம்
for j=1:a
x(j)=j*j; end x y=input(‘please input a string:’,’s’);
y
信控学院电子教研室 mashang21cn@
14
二、条件控制语句
1、if条件语句
matlab中,if条件语句的功能是:如果满足某个条件则执行一 条或一组语句,否则就不执行其内部的语句,或者执行else后面的 语句。调用格式如下: if condition statement end 或:if condition 或: if condition1 statement1 elseif conditon2 statement2
else
if n=3 a=n; else end a=0;
end
信控学院电子教研室 mashang21cn@
16
2、SWITCH-CASE 一旦num为其中的某个值或字符串时,就执行所对应的指令, 没有对应时,则执行otherwise后的语句。 一般switch-case语句格式为: switch 控制变量(标量或字符串) case n1

第2章 MATLAB程序设计基础

第2章  MATLAB程序设计基础

2.3.5
1. 字符串定义
字符串操作
字符串是用单撇号括起来的字符序列 [调用格式]
s='str' name=['str1' 'str2' 'str3']
说明: 字符串矩阵中每一行字符串元素的个数可 以不同、但字符总个数必须相同; 单个字符串中字符之间的空格也算一个字 符; 在字符串中要输入单撇号必须通过两个单 撇号实现
[例2-14] 矩阵 A= [1 0 3; 0 0 5], 求 k=find(A), [i,j]=find(A) , [i,j,v]=find(A) %例2-14 A= [1 0 3; 0 0 5]; k=find(A) %表示按列进行,即从第 %一列开始依次数下去 [i,j]=find(A) %i表示行标,j表示列标 [i,j,v]=find(A) %v为相应的非零元素的值
输入 a 0 0 b 0 1
与 A&b 0 0
或 a|b 0 1
异或 Xor(a,b) 0 1

~a
1 1
1
1
0
1
0
1
1
1
1
0
0
0
[例2-12] 逻辑矩阵 A= [1 1; 0 1], B= [0 0 0],逻辑标量b=0,求C1=A &b,C2=A|b,
1;
C3=xor(A,B)
%例2-12 A=[1 1 ;0 1]; b=0; B=[0 1;0 0]; C1=A&b C2=A|b C3=xor(A,B)
3.赋值语句
变量=表达式 其中表达式是用运算符将有关运算量 连接起来的式子。

《MATLAB程序设计教程(第二版)》第2章 MATLAB矩阵及其运算

《MATLAB程序设计教程(第二版)》第2章  MATLAB矩阵及其运算

例2-5 将101~125等25个数填入一个5行5列的表格中,
使其每行每列及对角线的和均为565。 M=100+magic(5)
(2) 范得蒙矩阵
范得蒙(Vandermonde)矩阵最后一列全为1,倒数 第二列为一个指定的向量,其他各列是其后列与
倒数第二列的点乘积。可以用一个指定向量生成
一个范得蒙矩阵。在MATLAB中,函数vander(V) 生成以向量V为基础向量的范得蒙矩阵。例如, A=vander([1;2;3;5])即可得到上述范得蒙矩阵。
对于比较大且比较复杂的矩阵,可以为它专门 建立一个M文件。下面通过一个简单例子来说明
如何利用M文件创建矩阵。
例2-2 利用M文件建立MYMAT矩阵。
(1) 启动有关编辑程序或MATLAB文本编辑器,并 输入待建矩阵:
(2) 把输入的内容以纯文本方式存盘(设文件名为
mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix,即运 行该M文件,就会自动建立一个名为MYMAT的 矩阵,可供以后使用。
是维数为0。
4.改变矩阵的形状
reshape(A,m,n)函数在矩阵总元素保持不变的前提下,
将矩阵A重新排成m×n的二维矩阵。
注意:
在MATLAB中,矩阵元素按列存储,即首先存储矩
阵的第1列元素,然后存储第2列元素,……,一直 到矩阵的最后一列元素。reshape函数只是改变原矩 阵的行数和列数,即改变其逻辑结构,但并不改变 原矩阵元素个数及其存储结构。
load 文件名 [变量名表] [-ascii]
其中,文件名可以带路径,但不需带扩展名.mat,
命令隐含一定对.mat文件进行操作。变量名表中 的变量个数不限,只要内存或文件中存在即可,

第2章__MATLAB程序设计PPT课件

第2章__MATLAB程序设计PPT课件

例2-6 某商场对顾客所购买的商品实行打折 销售,标准如下(商品价格用price来表示):
price<200 没有折扣 200≤price<500 3%折扣 500≤price<1000 5%折扣 1000≤price<2500 8%折扣 2500≤price<5000 10%折扣 5000≤price 14%折扣 输入所售商品的价格,求其实际销售价格。
for m=100:999
m1=fix(m/100);
%求m的百位数字
m2=rem(fix(m/10),10); %求m的十位数字
m3=rem(m,10);
%求m的个位数字
if m==m1*m1*m1+m2*m2*m2+m3*m3*m3
disp(m)
end
end
153 370 371 407
例2-9 已知 y=1+1/3+1/5+…,当n=10000时, 求y的值。 y=0; n=10000; for i=1:n y=y+1/(2*i-1); end y
2.3 程序控制结构
2.3.1 顺序结构 1.数据的输入 从键盘输入数据,则可以使用input函数来进 行,该函数的调用格式为:
A=input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户 输入什么样的数据。
如果在input函数调用时采用's'选项,则允许 用户输入一个字符串。例如,想输入一个人 的姓名,可采用命令:
2.3.3 循环结构
1.for语句 for语句的格式为: for 循环变量=表达式1:表达式2:表达式3
循环体语句
end 表达式1:循环变量初值 表达式2:步长,为1时,表达式2可以省略。 表达式3:循环变量终值

《控制系统计算机辅助设计MATLAB语言与应用第2版》薛定宇_课后习题答案

《控制系统计算机辅助设计MATLAB语言与应用第2版》薛定宇_课后习题答案
polar(t,r);axis('square')
【17】
(1)z=xy
>>[x,y]=meshgrid(-3:0.01:3,-3:0.01:3);
z=x.*y;
mesh(x,y,z);
>> contour3(x,y,z,50);
(1)z=sin(xy)
>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3);
【2】
相应的MATLAB命令:B=A(2:2:end,:)
>>A=magic(8)
A=
642361606757
955541213 515016
174746 202143 4224
4026273736 303133
323435 292838 3925
4123224445191848
491514 5253 11 10 56
【10】
function y=fib(k)
if nargin~=1,error('出错:输入变量个数过多,输入变量个数只允许为1!');endﻭif nargout>1,error('出错:输出变量个数过多!');end
if k<=0,error('出错:输入序列应为正整数!');endﻭifk==1|k==2,y=1;ﻭelsey=fib(k-1)+fib(k-2);endﻭend
858 5954 62 631
>>B=A(2:2:end,:)
B =
955 541213515016
40262737 36303133
41232244451918 48
858 5954 62631

第二讲 Matlab语言程序设计

第二讲 Matlab语言程序设计

P( x) = a0 x n + a1x n −1 + ... + an −1x1 + an P = [a0 , a1,...an −1, an ]
2、运算符与操作符 数学运算符
操作符
冒号“ 冒号“ :” 可以用来产生向量; 可以用来产生向量; 用作矩阵的下标,部分地选择矩阵元素; 用作矩阵的下标,部分地选择矩阵元素; 进行行循环操作。 进行行循环操作。 续号“ 表示一行未完,而在下一行继续; 续号“ …” 表示一行未完,而在下一行继续; 分号“ 分号“ ;” 在方括号中,表示矩阵中行的结尾; 在方括号中,表示矩阵中行的结尾; 用在每行的结尾, 不显示该行运算的结果。 用在每行的结尾,则 不显示该行运算的结果。
第2章 Matlab语言程序设计 章 语言程序设计
字符串函数
第2章 Matlab语言程序设计 章 语言程序设计
字符串举例: 字符串举例:
>> A= 'China ''中国''' ;输出带引号的汉字 >> B='我是好学生‘ >> a=2 >> c='I am fine.' >> s3=char('s', 'y','m','b','o','l','i','c') ;用函数char生成字符串 >> double(s3') ;字符串转换为数值代码 >> abs(s3') >> cellstr(s3) ;字符矩阵转换为字符串 >> b=num2str(a) ;数字转换为字符串 比较 >> b*2 和 str2num(b)*2 >> ab=[A,' ',B,'.'] >> AB=['中国';'北京']

MATLAB第二章

MATLAB第二章

function [egg1,egg2,chicken1]=myegg(n)
% egg1 隔1天的蛋个数 % egg2 隔2天的蛋个数 % chicken1 过n天后母鸡个数 if n==1
egg1=1; egg2=0; chicken1=1; elseif n==2 egg1=1; egg2=1; chicken1=1;
27
>> x=0:0.1:2*pi; >> y=sin(x); >> plot(x,y) >> plot(x,y,‘ro’) %默认是蓝色曲线 >> x=[0 1 2 5];y=[4 -2 1 2]; >> plot(x,y) >> fplot(‘x^2+4*x+1’,[-15 15]) %函数用字符串表示
1 -8 4 9 -4 5 7 -9 >> fun=@myfun5 %例28中的函数 fun =
@myfun5 >> y=fun(A) %直接调用 y=
1 -13 16 81 -5 25 49 -15 >> y=feval(fun,A) %利用feval y=
1 -13 16 81 -5 25 49 -15
1 4 9 16 5 10 15 20
2024/7/5
第二章 MATLAB编程与作图
24
>> k=5;
>> ff=@(x)x^2+2*x+k %可以使用空间中的变量k
ff =
@(x)x^2+2*x+k
>> ff(5)
ans =
40
>> A=[1 2 ;3 4]

第二章 matlab基础知识

第二章 matlab基础知识
第四种方法:利用函数logspace logspace是用来创建对数空间的向量

logspace 的基本语法
X=logspace(X1,X2,n) 该函数创建的向量第一个元素值为10X1,而最后一个元素的数值为10X2,

n为向量的元素个数,元素彼此之间的间隔按照对数空间的间隔设置 若在表达式中忽略参数n,则系统默认地将向量设置为50个元素
2.4 Matlab数据
2016/12/29 数据类型 矩阵的概念 一维数组变量的创建 二维数组变量的创建 数组元素的标识与寻访 字符串 多维矩阵 元胞 Application of Matlab Language 结构
8
2.4.1. MATLAB数据类型
数据的记述 Matlab的数只采用习惯的十进制表示,可 以带小数点和负号;其缺省的数据类型为双 精度浮点型(double)。 例如:3 -10 0.001 1.3e10 1.256e-6 其他数据类型 此外,MATLAB还提供了各种有符号、无 符号整型数据,具体参见教材表2.2。
语言。可见学习掌握这一工具的重要性。
2016/12/29
Application of Matlab Language
3
2.2 MATLAB的主要功能
功能强大
数值运算优势 符号运算优势(Maple) 强大的2D、3D数据可视化功能 许多具有算法自适应能力的功能函数
2016/12/29
10
2.4.2. 数组(array)的概念
数组的分类
一维数组,也称为向量(vector) 。
行向量(row vector)、列向量(column vector)。
二维数组(矩阵matrix)。 多维数组。 有效矩阵:每行元素的个数必须相同,每 列元素的个数也必须相同。

第2讲 MATLAB运行环境及程序设计

第2讲 MATLAB运行环境及程序设计

பைடு நூலகம்
2.2.8 演示系统
在帮助窗口中选择演示系统(Demos)选项卡, 然后在其中选择相应的演示模块,或者在命令 窗口输入Demos,或者选择主窗口Help菜单中 的Demos子菜单,打开演示系统。

2.2.9 远程帮助系统
在MathWorks公司的主页 ()上可以找到很多有 用的信息,国内的一些网站也有丰富的信息资源。

2.2.4 工作空间窗口
工作空间是MATLAB用于存储各种变量和结 果的内存空间。在该窗口中显示工作空间中所 有变量的名称、大小、字节数和变量类型说明, 可对变量进行观察、编辑、保存和删除。

2.2.5 当前目录窗口和搜索路径
1.当前目录窗口 当前目录是指MATLAB运行文件时的工作目 录,只有在当前目录或搜索路径下的文件、函 数可以被运行或调用。 在当前目录窗口中可以显示或改变当前目录, 还可以显示当前目录下的文件并提供搜索功能。 将用户目录设置成当前目录也可使用cd命令。 例如,将用户目录c:\mydir设置为当前目录, 可在命令窗口输入命令: cd c:\mydir
Lookfor 命令:知道命令的关键词 Help Desk: 命令查找,索引,说明书 Matlab电子版手册 Demo

1.help命令 在MATLAB 6.5命令窗口中直接输入help命 令将会显示当前帮助系统中所包含的所有项 目,即搜索路径中所有的目录名称。同样, 可以通过help加函数名来显示该函数的帮助 说明。
MATLAB帮助系统
2.2.7 帮助窗口
进入帮助窗口可以通过以下3种方法: (1) 单击MATLAB主窗口工具栏中的Help按钮。 (2) 在命令窗口中输入helpwin、helpdesk或doc。 (3) 选择Help菜单中的“MATLAB Help”选项。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16
15:47:20
a=[1 2 3; 3 -5 4; 7 8 9] x=[x1,x2,x3] b=[2;0;2] ax'=b x=a\b a左除b
方程组 X1+2X2+3X3=2 3X1- 5X2+4X3=0 7X1+8X2+9X3=2
可以表示为ax’=b
17
15:47:20
a=[1 2 3;4 5 6] b=[2 4 0; 1 3 5] d=[1 4 7; 8 5 2; 3 6 0] 运算:a*b d\a
元素之间用逗号、空格分开。不同行以分号 隔开。语句结尾用回车或逗号,会显示结 果,如果不想显示结果,用分号。 元素用()中的数字(下标)来注明,一维 用一个下标,二维用两个下标,逗号分开。 如果赋值元素的下标超过原来矩阵的大小, 矩阵的行列会自动扩展。 全行赋值,用冒号。 提取交点元素; 抽取某行元素用空矩阵。
A=[8 1 6 0; 3 5 7 1; 4 9 2 2] B1=fliplr(A) B2=flipud(A) B3=reshape(A,2,6) B4=rot90(A) B5=diag(A) B6=tril(A) B7=triu(A) B8=A(: )'
15:47:20
提取矩阵中某些特殊结构的元素, 组成新的矩阵,改变矩阵结构。 fliplr矩阵左右翻转 flipud矩阵上下翻转 reshape阶数重组(元素总数不变)
D*X=B inv(D)*D*X=inv(D)*B inv(D)*D=I I*X=X X=inv(D)*B=D\B X*D=B X=B*inv(D)=B/D
15:47:20
D与B行数相等 两端同时左乘以inv(D) 逆阵 单位阵 D\B为D左除B
X=D\B,左除时阶数检查条件:两矩阵的行数必须相等。 未知矩阵在左. D的逆阵右乘以B,记作 /D 右除。 右除时阶数检查条件:两矩阵的列数必须相等。
f4 =
单位矩阵
fb1 =
8 3 4 0 0
1 5 9 0 0
6 7 2 0 0
fb1=[f1,f3;f4,f2] fb2=[fb1;f5]
12
15:47:20
矩阵的初等运算
(1)矩阵的加减乘法 I. 加、减法:相加减的两矩阵阶数必须相同, 对应元素相加减。 [n,m]=size(fb2) 语句size检查矩阵阶数,两矩阵 相加,阶数AB将标量扩展成同 等元素矩阵,与另一矩阵相加 减。
a=
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 0 0 6.5000
a(5,:)=[5,4,3] b=a([2,4],[1,3]) a([2,4,5], : )=[]
15:47:20
4
15:47:20
5
15:47:20
6
复数
c=3+5.2i z=[1+2i,3+4i; 5+6i,7+8i] z=[1,3; 5,7]+[2,4; 6,8]*i f=sqrt(1+2i) f*f w=z’ (共轭转置) u=conj(z) (共轭) v=conj(z)’ (转置) 复数的虚数部分用i或j表示,如 曾用过i, j 作变量,用clear i,j 复数矩阵有两种赋值方法:
标量与矩阵相乘,不检查阶数,标量乘以矩阵的每一个元素。 X与y内阶数不同,将y转置 y’。读作x左乘y’。
ans = 2 ans = 2 1 0 0 0 0 -2 -1 0
y =[-2 -1 0];
x*y’ y‘*x
X右乘y’。
eye(3)*a
a*eye(3) a=1 4 7 2 5 8 3 6 9
U2=sqrt(S) U2 = 1.0000 1.4142 1.7321 2.0000 15:47:20
log(D) Warning: Log of zero. ans = 0 1.3863 1.9459 2.0794 1.6094 0.6931 1.0986 1.7918 -Inf
21
矩阵结构形式的提取与变换
①将其元素逐个赋予复数; ②将其实部和虚部矩阵分别赋值。
Z’复数矩阵共轭转置:行列互换,各 元素的虚部反号。 函数conj(z)共轭:只把各元素的 虚部反号。 转置conj(z)’:行列互换。
7
15:47:20
15:47:20
8
15:47:20
z = 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i w=z'(共轭转置) w = 1.0000 - 2.0000i 5.0000 - 6.0000i 3.0000 - 4.0000i 7.0000 - 8.0000i u=conj(z) (共轭) u = 1.0000 - 2.0000i 5.0000 - 6.0000i v=conj(z)’ (转置) v = 1.0000 + 2.0000i 3.0000 + 4.0000i
A=
A=[6 3 4; -2 5 7; 8 -4 -3] B=[3;-4; -7] X=A\B
6 3 4 -2 5 7 8 -4 -3 B= 3 -4 -7 X = 0.6000 7.0000 -5.4000
19
矩阵的乘方和幂次函数
MATLAB的运算符*、/、\、和^,指数函数expm、对数函数logm和开方函数sqrtm是 对矩阵进行的,即把矩阵作为一个整体来运算。除此以外,其他MATLAB函数都是对 矩阵中的元素分别进行,英文直译为数组运算(Array Operations),译为“元素群 运算” S=[1 2; 3 4] D=[1 4 7; 8 5 2; 3 6 0] D^2 2.^D D^S 幂次运算:矩阵为底数,指数是标量,同矩阵乘法一样, 为保内阶数相同,底数的矩阵必须是方阵。矩阵是指数, 底数是标量,矩阵也必须是方阵。底数和指数不能同时 为矩阵。 按矩阵运算,等于D* D 按元素群运算 非法运算
左、右乘结果不同,只有单位矩阵例外。 单位矩阵乘以矩阵A,左、右乘结果仍等于该矩阵。
ans = 1 4 7 2 5 8 3 6 9 ans = 1 4 7 2 5 8 3 6 9
14
15:47:20
15
矩阵的除法及线性方程组的解
a =1 4 7 2 5 8 3 6 9
AV=I V=inv(a)
V=A -1 inv(a)*a
3.0000 - 4.0000i 7.0000 - 8.0000i
5.0000 + 6.0000i 7.0000 + 8.0000i
9
15:47:20
10
变量检查 who whos inf NaN
检查工作空间中的变量; 检查变量的详细特征 无穷大 1/0; 非数(Not a Number) 0/0 inf/inf 0*inf。 系统不停止运算,结果仍为inf或NaN。
特殊常用常量: 1. eps(2.2204e-016); 2. j:15+5j ; 3. i:15+5i ; 4. Inf :无穷大 1/0;; 5. NaN:不存在的数; 6. pi.
3
2.3 矩阵及其元素的赋值
变量=表达式或数( ;)
a=[1 2 3; 4 5 6;7 8 9] x=[-1.3 sqrt(3) (1+2+3)/5*4] x(5)=abs(x(1)) a(4,3)=6.5
第二章 MATLAB程序设计基础
15:47:20
2.1 MATLAB的基本使用环境

操作界面
2
15:47:20
2.2 MATLAB的数据结构

MATLAB只有一种数据格式,双精度(即64位)二进制,对 应于十进制16位有效数和〒308次幂。 2.2.1 常量与变量
标识符是标识变量名、常量名、函数名和文件名的字符串的总称。 标识符可以是英文字母、数字和下划线等符号。标识符第1个字 符必须是英文字母,MATLAB对大、小写敏感。
7 2 0 54 66 15 54 69 66 51 42 33 2.^D ans = 2 16 128 256 32 4 8 64 1
D^S ??? Error using ==> ^ At least one operand must be scalar. V1=expm(S) V1 = 51.9690 74.7366 112.1048 164.0738 V2=exp(S) V2 = 2.7183 7.3891 20.0855 54.5982
V = 1.0e+016 * -0.4504 0.9007 -0.4504 0.9007 -1.8014 0.9007 -0.4504 0.9007 -0.4504
n〓n阶方阵A和同阶的方阵V相乘,得出n阶单位矩阵I。 I为eye(n)。 V是A的逆阵。V存在条件:A的行列式不等于0, det(A)≠0 V=A-1 MATLAB内部函数inv,得出A的逆阵V。
U1=sqrtm(S) U2=sqrt(S) V1=expm(S) V2=exp(S) Logm(D) 15:47:20 Log(D)
按矩阵运算,求平方根,可以用U1* U1=S验证 按元素群运算,U2* U2≠S,U2.〓U2=S 按矩阵运算 按元素群运算 按矩阵运算 按元素群运算
20
S =1 2 3 4 D=1 4 8 5 3 6 D^2 ans =
a*b ??? Error using ==> * Inner matrix dimensions must agree. d\a ??? Error using ==> \ Matrix dimensions must agree.
相关文档
最新文档