第二章 MATLAB程序设计基础
合集下载
《MATLAB基础与编程入门》课件第2章
![《MATLAB基础与编程入门》课件第2章](https://img.taocdn.com/s3/m/55a9f4a54128915f804d2b160b4e767f5acf80aa.png)
是一行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]
例子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](https://img.taocdn.com/s3/m/0b32cd81d4d8d15abe234e34.png)
第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基础](https://img.taocdn.com/s3/m/513d5ad108a1284ac9504305.png)
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”则是一个字符串常量。
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节-赵亦欣](https://img.taocdn.com/s3/m/3aa49331f111f18583d05a26.png)
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.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 语言程序设计基础](https://img.taocdn.com/s3/m/3d3f0df0910ef12d2af9e7c9.png)
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语言程序设计基础](https://img.taocdn.com/s3/m/569c5408eff9aef8941e06bc.png)
控制系统仿真与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语言的使用与程序设计](https://img.taocdn.com/s3/m/99cadb51fe4733687e21aaf6.png)
命令历史窗口:显示已执行过的命令。在窗口的某一命令上单击鼠标 右键,会弹出菜单,对所选命令进行操作。
当前路径窗口:提供了当前路径文件的操作
演示
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程序设计基础](https://img.taocdn.com/s3/m/f471353a83c4bb4cf7ecd1ec.png)
扩展名均为.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程序设计基础](https://img.taocdn.com/s3/m/648aa11fb7360b4c2e3f647a.png)
二、生成选择菜单
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程序设计基础](https://img.taocdn.com/s3/m/f908033deefdc8d376ee3230.png)
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矩阵及其运算](https://img.taocdn.com/s3/m/66cbe39951e79b89680226b8.png)
例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课件](https://img.taocdn.com/s3/m/a2dfba0984254b35effd34af.png)
例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版》薛定宇_课后习题答案](https://img.taocdn.com/s3/m/c54a8eae10a6f524cdbf8552.png)
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
【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语言程序设计](https://img.taocdn.com/s3/m/9fd20c3783c4bb4cf7ecd184.png)
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第二章](https://img.taocdn.com/s3/m/4bc90a5977c66137ee06eff9aef8941ea76e4bc0.png)
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基础知识](https://img.taocdn.com/s3/m/8ca1a254f7ec4afe04a1df78.png)
第四种方法:利用函数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)。 多维数组。 有效矩阵:每行元素的个数必须相同,每 列元素的个数也必须相同。
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运行环境及程序设计](https://img.taocdn.com/s3/m/df9b01d449649b6648d74727.png)
பைடு நூலகம்
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.
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.