第二章Matlab基本运算

合集下载

第二讲 MATLAB基本运算

第二讲 MATLAB基本运算
2010-12-25 20
矩阵下标的用途
访问超出矩阵范围时,产生 Index exceeds matrix dimentions 存储超出矩阵范围时,矩阵自动调节 大小,将指定位置元素置入,其他没 指定数的位置默认为零。
2010-12-25
21
矩阵下标的用途
(2)矩阵连接 例:a=[1 2;3 4] b=[a a+5; a-5 zeros(size(a)] 将小矩阵嵌套入大矩阵,实现矩阵连接。
将矩阵按创建原则写入一个M文件, 在MATLAB的命令窗口或程序中直接执 行该M文件,即将矩阵调入工组空间。
2010-12-25
15
利用MATLAB函数创建矩阵 利用MATLAB函数创建矩阵 MATLAB
ones( m, n) - m行n列的1阵产生 zeros(m, n) -产生m行n列的全0阵 rand(m, n) -产生m行n列均匀分布全列的在 [0,1]区间的随机阵 randn(m, n) -产生m行n列的正态分布矩阵 eye(n) -产生n维单位阵
2010-12-25 18
2.2.3 矩阵的下标 .2.3
子矩阵提取A(v1, v2)
v1表示子矩阵包含的行标构成的向量 v2表示子矩阵包含的列标构成的向量 B1=A(:, [1, 3]) 为:时表示要提取所有行(列) B2=A(1:2:end, :) end表示最后一行(列) B3=A([3,2,1],[2,3,4]) 例: B4=A(:, end:-1:1) 提取A矩阵所有行、1,3列 提取A矩阵 3,2,1 行、2,3,4 列构成子矩阵 提取A矩阵全部奇数行,所有列 将A矩阵左右翻转
2010-12-25
13
直接输入法创建矩阵
例:创建矩阵

第二章 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的基本计算

第二讲 Matlab的基本计算

>>a3=mat2str( a,2 ) %一行字符
字符串的应用:作出函数图形,并标注最大值点。 字符串的应用:作出函数图形,并标注最大值点。
y = e 2t sin(3t ) 0 ≤ t ≤ 10
clear %清除内存变量 t = 0 : 0.01 : 10; %时间 t 从 0 到 10 每隔 0.01 均匀采样 y = exp( -2*t ) .* sin( 3*t ); %对应每一个 t 求 y 值 %求最大值 y_max 及其下标 i_max [ y_max, i_max ] = max( y ); %横坐标字符串 t_text = [ 't = ', num2str( t(i_max) ) ]; %纵坐标字符串 y_text = [ 'y = ', num2str( y_max ) ]; %三行字符来标识最大值点 max_text = char( 'Maxium', t_text, y_text ); %图名称字符串 Title = [ 'y = exp( -2*t ) .* sin( 3*t )' ]; %新建一个图形窗 figure %画一条黑色的水平线 plot( t,zeros( size(t) ), 'k' ) %保持图形不被清除 hold on %蓝色实线画曲线 y(t) plot( t, y, 'b' ) %大小为 20 的红圆点标记最大值点 plot( t(i_max), y_max, 'r.', 'MarkerSize', 20 ) %在最大值点附近显示注释字符 text( t(i_max)+0.3, y_max+0.05, max_text ) %显示图名、横坐标名、纵坐标名 title( Title ); %取消图形保持 xlabel( 't' ) ylabel( 'y' ) hold off

MATLAB第二章

MATLAB第二章

2 特殊数据判断函数
常用的特殊数据判断函数:
• isinf(A) 返回一个与A同型的数组,该数组元素的 值根据A的相应位置元素的值为无穷大inf时设置为1, 否则为0。 • isnan(A) 返回一个与A同型的数组,该数组元素的 值根据A的相应位置元素的值为NaN 时设置为1,否 则为0。 • isfinite(A) 返回一个与A同型的数组,该数组元素 的值根据A的相应位置元素的值为有限值时设置为1, 否则为0。
关系运算规则
关系运算符的运算法则为: • 1 当两个比较量是标量时,直接比较两数的大 小。若关系成立,关系表达式结果为1,否则 为0。 • 2 当参与比较的量是两个同型的矩阵时,比较 是对两矩阵相同位置的元素按标量关系运算规 则逐个进行,并给出元素比较结果。最终的关 系运算的结果是一个与原矩阵同型的矩阵,它 的元素由0或1组成。
当a=[pi NaN Inf -Inf]时,分析下列 语句的执行结果
• isinf (a) • isnan (a) • isfinite (a)
例 当A=[-6,NaN,Inf,5;-Inf,-pi, eps,0] 时,分析下列语句的执行结果。 • • • • • • • all(A) all(all(A)) any(A) any(any(A)) isnan(A) isinf(A) isfinite(A)

建立任意的3×3的矩阵,并求 出能被3整除的元素。
9 -1;-3 -9 0];
A=[1 0 3 ;2
%生成3×3的矩阵A P=rem(A,3)==0
%判断A的元素是否可以被3整除 A(P) %求出被3整除的元素 如果求上述矩阵中能被5整除的元素呢? P=rem(A,5)==0
例 求三阶魔方矩阵中绝对值大于7的元素。 a=magic(3);

MATLAB基础教程第2章

MATLAB基础教程第2章

第二章 数组、矩阵及其运算
2.1 数组的创建和寻访
例2-2 一维数组的生成与访问
命令:X=rand(1,5) 命令:X(3) 命令:X([1 2 5]) 命令:X(1:3) 命令:X(3:end) 命令:X(3:-1:1) 命令:X(find(X>0.5)) 命令:X([1 2 3 4 4 3 2 1])
第二章 数组、矩阵及其运算
2.2 矩阵的运算
例2-6 矩阵的乘法(接着上面的例子) A*B 3*A
注意:矩阵相乘时要求A的列数等于B的行数
第二章 数组、矩阵及其运算
2.2 矩阵的运算
A/B(矩阵右除)表示的是方程X*B=A的解 A\B(矩阵左除)表示的是方程A*X=B的解
例2-7 矩阵的除法( 见教材P.23)
第二章 数组、矩阵及其运算
2.3 数组的运算
1、数组的基本运算
例2-8 ( 见教材P.25)
第二章 数组、矩阵及其运算
2.3 数组的运算
数组运算和矩阵运算指令对照表
数组运算 指令 A.’ A=s A+s,A-s s.*A s./A,A.\s A.^n A+B,A-B A.*B A./B B.\A 含义 非共轭转置,相当于conj(A’) 把标量s赋给A中每个元素 标量s分别于A的元素之和(差) 标量s分别于A的元素之积 S分别被A的元素除 A的每个元素自乘n次 对应元素相加(减) 对应元素相加(乘) A的元素被B的对应元素相除 (与上相同) A^n A+B,A-B A*B A /B B\A 方阵A自乘n次 矩阵和(差) 同内维矩阵相乘 A右除B A左除B S*A 标量s分别于A的元素之积 A’ 指令 共轭转置 矩阵运算 含义
第二章 数组、矩阵及其运算

第2章 MATLAB数据及其运算.

第2章 MATLAB数据及其运算.

8 1 d 3 5
(2)利用空矩阵删除矩阵的元素 a=[ ] a的维数为0。 例:a( 2 , : )= [ ]; 8 1 6 得: 3 5 7 a a= 4 9 2 8 1 6 4 9 2
2.3.5

复数(Com part)和虚部(imaginary part)组 成。 虚数单位用i或j来表示。 6+5i = 6+5j
format bank format rat
2.3 MATLAB矩阵的表示
2.3.1 矩阵 MATLAB中最基本的数据结构是矩阵(matrix)。 1*1的矩阵----标量(scalar): [5] 只有一行或一列的矩阵-----向量(vector): [1 3 5 7]
2 4 6 8
2.4 Matlab数据的运算(Operators ) 运算符(Operators )
+ Addition
*
Subtraction
Multiplication
/
\
Division
Left division
^
Power
2.4.1 算术运算 (1)矩阵加减运算: 两个同维矩阵,才能进行加减运算,对应无素相加减。 一个标量与矩阵相加减时,结果为这个标量与矩阵的 每一个元素相加减。 x=[2,-1,0;3 2 -4]; y=ones(2,3); x-y=? [1,-2,-1;2,1,-5] x+1=? [3,0,1;4,3,-3]
在线性代数中,本没有矩阵除法,它是由逆 矩阵引申来的。 MATLAB中,矩阵求逆(Matrix inverse)的函 数为: Y = inv(X) 方程A*X=B的解为:X=inv(A)*B=A\B, A\B称为A左除B,左除时要求两矩阵行数相等。 方程X*A=B的解为:X=B*inv(A)=B/A, A/B称为A右除B,右除时要求两矩阵列数相等。

第二章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 矩阵下标引用
本小节将介绍通过矩阵 下标 来存取元素值 的方法,包括访问单个元素、线性引用元 素和访问多个元素等。

第2章 MATLAB基本操作

第2章   MATLAB基本操作

6. 逻辑操作符 功能: 功能:逻辑操作运算。 格式: 格式:A&B A|B ~A 注意逻辑操作有相应的M文件 文件: 注意逻辑操作有相应的 文件:A&B等效 等效 ),A|B等效于 等效于or(A,B), 于and(A,B), ( , ), 等效于 , , ~A等效为 等效为not(A)。 等效为 。
2.关系操作符 关系操作符 关系运算符包括: 关系运算符包括:< 、< = 、〉、> = 、= = 、 ~= 3.测试用的逻辑函数 测试用的逻辑函数 1)all函数测定矩阵中是否全为非零元素 2)any函数测试出矩阵中是否有非零值 3) find函数可找出矩阵中的非零元素及其下 标 4) exist函数在装入数据之前对数据文件作 检测
利用取整和求余函数,可得到整数或精确到小数点后的第 几位。例如: x1=10-round(20*rand(2,5)) %产生[-10 10]之间的随机数(取整) x1 = -4 4 -1 -4 7 -7 -2 0
2 −7
x2=10-round(2000*rand(2,5))/100 %产生[−10 10]之间的随机 数(精确到0.01) x2 = -8.0000 -2.9000 -3.2000 -6.4300 -6.3600 3.1600 4.2100 -0.6800 3.1800 -4.5400
5.函数 函数 内部函数、工具箱函数、自定义函数。 1)函数的嵌套 x=sqrt(log(z)) 函数的嵌套 2)多输入函数 theta=atan2(y,x) 多输入函数 3)多输出函数 [v,d] = eig(a) 多输出函数 [y,I] = max(x) 6.表达式 表达式 a=(1+sqrt(10))/2 b=abs(3+5i) c=sin(exp(-2.3))

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 数值类型
数值类型分类方法
根据数据存 储空间和方 式分类
根据数据结 构分类

第2章_MATLAB的基本操作

第2章_MATLAB的基本操作
浮点数
浮点数包括单精度(4个字节)和双精度(8个字 节),默认为双精度。
single :将其它类型的数据转换成单精度浮点数。 double :将其它类型的数据转换成双精度浮点数。
浮点数与其它类型数据运算表
operand single double int/uint char logical X single single single single single double single double int/uint double double
MATLAB数据类型
例:
MATLAB数据类型
细胞变量的定义
可以通过以下两种方式定义一个细胞变量:
用赋值语句直接定义; 由 cell 函数预先分配存储空间,然后对细
胞的每个元素逐个赋值。
MATLAB数据类型
MATLAB数据类型
细胞变量可以嵌套定义
MATLAB数据类型
细胞变量的元素的引用
MATLAB数据类型
str2num:将字符数组转换为
数值数组
abs,double,char按照 ASCII码 转换; num2str,int2str,mat2str,str2num 直接转换。
MATLAB数据类型
字符串的连接
水平连接:strcat 或 中括号中用逗号连接
在中括号中直接水平连 接,结果中包括原字符 串结尾处的空格。 用 strcat 连接,结果 中忽略原字符串结尾处 的空格。
把数字直接转换为字符 串,每个数字为一个独 立的字符串。
把数字取整后转换为字 符串,注意和 num2str 的区别。
把矩阵转换为一个字符 串,方括号、分号和空 格都是其元素。
MATLAB数据类型

MATLAB运算基础(第2章)答案

MATLAB运算基础(第2章)答案

实验01讲评、参考答案讲评未交实验报告的同学名单数学:6人(11、12级)信科:12-04, 12-22, 13-47批改情况:问题1:不仔细,式子中出错。

问题2:提交的过程不完整。

问题3:使用语句尾分号(;)不当,提交的过程中不该显示的结果显示。

问题4:截屏窗口没有调整大小。

附参考答案:《MATLAB软件》课内实验王平实验01 MATLAB运算基础(第2章MATLAB数据及其运算)一、实验目的1. 熟悉启动和退出MATLAB 的方法。

2. 熟悉MATLAB 命令窗口的组成。

3. 掌握建立矩阵的方法。

4. 掌握MATLAB 各种表达式的书写规则以及常用函数的使用。

二、实验内容1. 数学表达式计算先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

1.1 计算三角函数122sin 851z e=+(注意:度要转换成弧度,e 2如何给出) 示例:点击Command Window 窗口右上角的,将命令窗口提出来成悬浮窗口,适当调整窗口大小。

命令窗口中的执行过程:1.2 计算自然对数221ln(1)2z x x =++,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦(提示:clc 命令擦除命令窗口,clear 则清除工作空间中的所有变量,使用时注意区别,慎用clear 命令。

应用点乘方) 命令窗口中的执行过程:1.3 求数学表达式的一组值0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。

命令窗口中的执行过程:1.4 求分段函数的一组值2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5提示:用逻辑表达式求分段函数值。

命令窗口中的执行过程:1.5 对工作空间的操作接着显示MATLAB当前工作空间的使用情况并保存全部变量提示:用到命令who, whos, save, clear, load,请参考教材相关内容。

第二章 MATLAB基础知识

第二章 MATLAB基础知识

2.2 数组及其运算
例 ascii_a=double(a) %将字符转换为相应的双精度值 ascii_a = Columns 1 through 13 84 104 105 115 32 105 115 32 97 110 32 101 120 Columns 14 through 19 97 109 112 108 101 46 例 char(ascii_a) %将双精度值转换为字符 ans = This is an example. 例 w=find(a>=‘a’&a<=‘z’); %查找所有小写字母的位置 ascii_a(w)=ascii_a(w)-32; %将小写字母ascii值转换为大写 char(ascii_a) %将双精度值转换为字符 ans = THIS IS AN EXAMPLE.
2.2 数组及其运算
2.2.2 数组的运算
运算 加 运算符 + 表达式 a+b
减 乘 除 幂 点乘 点除 点幂
*
/或\ ^ .* ./或.\ .^
a-b a*b
a/b或a\b a^b a .* b a ./ b或a.\b a.^b
2.2 数组及其运算
例 a=3 14 7 1 4 9 3 6 10 b=2 8 3 2 10 0 11 2 7 a+b ans= 5 22 10 3 14 9 14 8 17
2.2 数组及其运算
高维数组的创建
直接通过“全下标”元素赋值方式创建高维数组; 由若干个同样大小的低维数组组合成高维数组; 由函数ones、zeros、rand、randn直接创建标准
高维数组;
借助cat、repmat、reshape等函数构造高维数组。
Am

第2章 MATLAB的基本语法(1)

第2章  MATLAB的基本语法(1)

handmard
Handmard矩 rosser 阵
hankel hilb invhilb
Hankel矩阵 toeplize Hilbert矩阵 vander
Hilbert逆矩 wilkinson 阵
魔方矩阵
Pascal矩阵
经典的对称 特征值测试 矩阵 Toeplize矩阵
Vandermond e矩阵 Wilkinson’s 特征值测试 矩阵
• 这几个函数的调用格式相似,下面以产生零矩阵 的zeros函数为例进行说明。其调用格式是:
zeros(m) 产生m×m零矩阵
zeros(m,n) 产生m×n零矩阵。 zeros(size(A)) 产生与矩阵A同样大小的零矩阵
• 相关的函数有:length(A)给出行数和列数中的较 大者,即length(A)=max(size(A));ndims(A)给出 A的维数。
1/0
Inf (1/0)
Warning: Divide by zero. ans =
Inf
NaN (0/0,0*Inf,Inf/Inf)
Inf/Inf ans = NaN
ans pi Inf NaN i或j Nargin nargout realmax realmin flops eps
基本赋值矩阵
MATLAB中所有的运算符和函数对复数 有效
f=sqrt(1+2i) f=
1.2720 + 0.7862i
>> f*f ans =
1.0000 + 2.0000i
变量检查
在调试程序时,要检查工作空间中的 变量及其阶数
变量检查用who命令
who
Your variables are:

第二章 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)。 多维数组。 有效矩阵:每行元素的个数必须相同,每 列元素的个数也必须相同。

02第二章Matlab语言基础-Matlab教程

02第二章Matlab语言基础-Matlab教程

MATLA于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩 阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列 例m=[1 2 3 4 ;5 6 7 8;9 10 11 12] p=[1 1 1 1 2222 3 3 3 3] 特殊矩阵的建立: a=[ ] 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零. b=zeros(m,n) 产生一个m行、n列的零矩阵 c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵 d=eye(m,n) 产生一个m行、n列的元素的单位矩阵 e=randn(m,n) 产生一个m行、n列正态分布随机矩阵
3、数组的方向 前面例子中的数组都是一行数列,是行方向分布的 称之为行向量 数组也可以是列向 行向量. 前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量 数组也可以是列向 量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示. 它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示 产生列向量有两种方法: 产生列向量有两种方法: 直接产生 例 转置产生 例 c=[1;2;3;4] ; ; ; b=[1 2 3 4]; c=b’
Matlab语言基础 Matlab语言基础
1)启动与退出
双击matlab图标,进入matlab命令窗口(command window) 双击matlab图标,进入matlab命令窗口(command window),即可 输入命令语句,开始运算,或从开始菜单的程序中单击matlab进入。 输入命令语句,开始运算,或从开始菜单的程序中单击matlab进入。 单击file菜单中的Exit,或在命令窗口输入Exit并回车即可退出。 单击file菜单中的Exit,或在命令窗口输入Exit并回车即可退出。

MATLAB实用教程第二章

MATLAB实用教程第二章
1.矩阵的合并 2.矩阵行列的删除
1.矩阵的合并
矩阵的合并就是把两个或者两个以上的矩阵 连接成一个新矩阵矩阵构造符 可用于构造矩阵并 可以作为一个矩阵合并操作符 ➢ 表达式C=A B在水平方向合并矩阵A和B; ➢ 表达式C=A;B在竖直方向合并矩阵A和B
具有相同行数的两个矩阵合并为一个新矩阵
12 34 56 3×2
1.访问单个元素
2.线性引用元素
➢ 对于矩阵A线性引用元素的格式为 Ak通常这样的引用用于行向量或列 向量但也可用于二维矩阵
➢ MATLAB按列优先排列的一个长列向量格 式线性引用元素来存储矩阵元素
3.访问多个元素
操作符:可以用来表示矩阵的多个元 素若A是二维矩阵其主要用法如下: ➢ A:: 返回矩阵A的所有元素 ➢ Ai: 返回矩阵A第i行的所有元素
3.用满矩阵和稀疏矩阵存储方式分别构造下述矩 阵:
4.采用向量构造符得到向量159…41 5.按水平和竖直方向分别合并下述两个矩阵:
6. 分别删除第5题两个结果的第2行 7. 分别将第5题两个结果的第2行最后3列的数值
改为11 12 13 8. 分别查看第5题两个结果的各方向长度 9. 分别判断pi是否为字符串和浮点数 10.分别将第5题两个结果均转换为29的矩阵 11.计算第5题矩阵A的转秩 12.分别计算第5题矩阵A和B的A+B、A.* B和
行运算; ➢ 不同优先级的运算符采用先进行优先高的
运算
运算符的优先等级表
由表中可以看到括号的优先级别最高因此可 以用括号来改变默认的优先等级
2.4 字符串处理函数
2.4.1 字符串的构造 2.4.2 字符串的比较 2.4.3 字符串的查找和替换 2.4.4 字符串与数值间的转换

matlab第二章

matlab第二章
3)ceil,与floor相反,它的意思是天花板,也就是取比它大的最小整 数,即朝正无穷方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;ceil(-1.8)=-1,
ceil(1.8)=2
4)round四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=2;round(1.3)=1;round(1.52)=2。
MATLAB 中的变量不需要事先定义,在 遇到新的变量名时,MATLAB会自动建立该变 量并分配存储空间。当遇到已存在的变量时, MATLAB会更新其内容,如有必要会重新分配
存储空间。
下一页
变量名由字母、数字和下划线构成, 并且必须以字母开头,最长为31个字符。 MATLAB能区分大小写字母,变量A和a是
例如: if a>1
disp('a>1')
elseif a==1
disp('a=1')
else disp('a<1') end 上一页 返回
3、逻辑函数
MATLAB提供了许多测试用的逻辑函数,
主要有all、any、find、exist、is*等。
返回
all函数
利用all函数可以测定矩阵每列所有
元素是否非零。若该列所有元素非零,则
利用重复函数repmat可以将小矩阵以
重复的形式产生大矩阵。
例如: f=repmat(a,2,3)
3、矩阵缩小 将大矩阵变成小矩阵的方法有两种: 抽取法和删除法。 (1)抽取法是指从大的矩阵中抽取中 的一部分,从而构成新的矩阵。例如: a=[1:4; 5:8; 9:12; 13:16] b=a(2:3, 3:4) c=a([1 4],[1 3]) d=a([2 4],[1 3])

第二章 Matlab的基本运算-yxw

第二章 Matlab的基本运算-yxw
• z=r*exp(i*theta) • z=complex(a,b)
2.2 矩阵和数组的算术运算
• 空数组(empty array):没有元素的数组; • 标量(scalar):是指1×1的矩阵,即为只含一
个数的矩阵; • 向量(vector):是指1×n或n×1的矩阵,即只
有一行或者一列的矩阵; • 矩阵(matrix):是一个矩形的m×n数组,即二
4字节 8字节
-3.40282×1038 ~ +3.40282×1038
-1.79769×10308 ~ +1.79769×10308
类型转换 函数 single()
double()
2.1.3 复数
• MATLAB用特殊变量“i”或“j”表示虚数的 单位。
• 复数的产生可以有几种方式:
• z=a+b*i或z=a+b*j • z=a+bi或z=a+bj(当b为常数时)
a(11)
• 中元素通过n个下标来引用:
图 2.4 矩阵的元素
• a(d1,d2,d3….)
例如:一个m×n的a矩阵的第i行第j列的元素表 示为a(i,j)。
• (2)单下标方式
• 数组元素用单下标引用,就是先把数组的所有 列按先左后右的次序连接成“一维长列”,然 后对元素位置进行编号。
• 以m×n的矩阵a为例,元素a(i,j)对应的单下标 = (j-1)×m+i。
• A. 10
B. 11
C.
9
D. 12
答案: B
• 3. 矩阵
• 矩阵是m行n列(m×n)的二维数组, 需要使用“[ ]”、“,”、“;”、空格等符号 创建。
• 最简单的方法是采用矩阵构造符“[]”。 构造1n矩阵(行向量)时,可以将各 元素依次放入矩阵构造符[]内,并且以 空格或者“,”分隔;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程名称:Matlab应用教材:Matlab应用于实验教程教程讲授人:专业技术职务:讲师学历:研究生学位:硕士讲授题目:Matlab基本运算所属章节:第二章计划学时:2学时教学目的和要求:MATLAB 7的优点不仅在于强大的功能,还在于其简单易学。

本章主要是介绍MATLAB 7的基本使用方法。

在学习完本章的内容后,可以进行基本的数值运算,从而能够容易地解决许多在学习和科研中遇到的计算问题。

教学重点:•标点符号的使用•常用的操作命令和键盘技巧•MATLAB 7的数据类型•常量和变量的使用方法•浮点数和复数的使用方法教学难点:•简单的数学运算•常用的操作命令和键盘技巧•MATLAB 7的数据类型教学方法:讲授、演示使用教具: 多媒体课件 思 考 题:1. MATLAB 的命令窗口的作用是什么?编辑/调试窗口?图象窗口?2. 列出几种不同的得到MATLAB 帮助的方法。

3. 什么是工作区?在同一工作区内,你如何决定它里面存储了什么?4.一小球从空中下落的位移公式为20021++=at t v x x 用MATLAB 计算小球在t =5s 时的位置,已知x 0 =10m ,v 0 =15m/s , a=-9.84m/s 2.参考资料:【1】 Matlab Programming for Engineers.(Second Edition).StephenJ.Champan【2】 精通Matlab 7王正林.刘明编著.电子工业出版社第2章Matlab 基本运算在本章我们将学习MATLAB 的基本元素。

在本章的章末,你将会编写简单的函数化的工具。

2.1 变量和数组MATLAB 程序的基本数据单元是数组。

一个数组是以行和列组织起来的数据集合,并且拥有一个数组名。

数组中的单个数据是可以被访问的,访问的方法是数组名后带一个括号,括号内是这个数据所对应行标和列标。

标量在MATLAB 中也被当作数组来处理——它被看作只有一行一列的数组。

数组可以定义为向量或矩阵。

向量一般来描述一维数组,而矩阵往往来描述二维或多维数组。

当我们讨论一维数组时用向量表示,当我们讨论二维或多维向量时用矩阵。

如果在特殊情况下,同时遇到这两种数组,我们就把他们通称为“数组”。

数组的大小(size )由数组的行数和列数共同决定,注意行数在前。

一个数组所包含的数据多少可由行数乘列数得到。

例如,下列数组的大小为图2.1 一个数组是以行和列组织起来的数据集合,此数组arr 含有20 个元素,共4 行,5列。

阴影元素是arr(3,2)数组中的单个数据是可以被访问的,访问的方法是数组名后带一个括号,括号内是这个数据所对应的行标和列标。

如果这个数组是一个行向量或列向量,则只需要一个下标。

例如上面的数组A(2 1)为3,C(2)为2。

一个MATLAB 变量是一段包含一个数组的内存区,并且拥有一个用户指定的变量名。

通过适当的命令和它的变量名随时可以就调用它和修改它。

MATLAB 的变量名必须以字母开头,后面可以跟字母,数字和下划线(_).只有前63个字符是有效的;如果超过了63个字符,基余的字符将被忽略。

如果声明两个变量,两变量名只有第64个字符不同,那么MATLAB 将它们当作同一变量对待。

2.2 MATLAB 变量的初始化当变量初始化时,MATLAB 将会自动建立变量。

有三种方式初始化MATLAB 中的变量:1.用赋值语句初始化变量2.用input 函数从键盘输入初始化变量3.从文件读取一个数据2.2.1 用赋值语句初始化变量最简单的创建和初始化一个变量的方法是用赋值语句赋予变量一个或多个值。

赋值语句的一般形式如下var = expressionvar 是变量名,expression 可以是一个标量、一个数组或常量、其他变量和数学运算符号(+、-)的联合。

这个表达式(expression )的值是通过一般的数学运算法则计算出来的,然后将产生的结果存储到变量var 中。

下面是一些用赋值语句初始化的变量:var=40*i;var2=var/5;array=[1 2 3 4];x=1;y=2;第一个例子创建了一个double 类型的标量变量,存储了一个虚数40i 。

第二个例子创建了一个表达式var2,把var/5 的值存储于内。

第三个例子创建了一个数组array,并存储了一个4 元素的行向量于内。

最后一个例子显示了多个赋值语句可写在同一行,中间用逗号或分号隔开。

注意如果在赋值语句执行时变量已经存在,那么这个变量原有的值将被覆盖。

正如第三个例子显示的,数据数组也可以初始化变量。

我们可以用是括号()和分号建立数组。

所有元素按行阶排序,换句话说,每一行的值从左向右,顶部的行置于最前,底部的行置于最后。

在一行内单个数值可用空格或逗号隔开,而行与行之间要与则用分号隔开,或另起一行书写。

下面的表达式都是合法的,能用于建立一个变量:[5] 这个表达式创建了1×1 数组(一个标量),包含数值3.4. 这时括号可以省略.[1.0 2.0 3.0] 这个表达式创建了1×3 数组,一维行向量[1 2 3][1.0;2.0;3.0] 表达式创建了一个3×1 数组,一维列向量⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡321 [1,2,3;4,5,6] 这个表达式创建了一个2×3 数组,矩阵⎥⎦⎤⎢⎣⎡416 5 3 2[1,2,3 这个表达式创建了一个2×3 数组,矩阵 ⎥⎦⎤⎢⎣⎡416 5 3 2 4,5,6][] 是个空数组,没有行,没有列(注意他与元素全为零的数组的区别)注意一个数组每一行元素的个数必须完全相同,每一列元素的个数也必须完全相同.像[1 2 3;4 5]; 这样的表达式是非法的,因为第一行有3个元素,第二行有只有2个元素 用于初始化数组的表达式可以包括代数符号或事先已经定义好的数组.例如赋值语句:a=[0 1+7] b=[a(2) 7 a]定义了数组a=[0 8] 和数组b=[8 7 0 8].当我们创建一个数组时,不是每一个元素都必须定义.如果要定义一个特殊的数组,或只有一个或几个元素没有定义,那么之前的那些元素将会自动创建,并初始化为0.例如,如果数组c 事先没有定义,语句c(2,3)=5 将会创建一矩阵⎥⎦⎤⎢⎣⎡0=5 0 00 0 c 在每个赋值语句末的分号有特殊的目的:无论在何时一个表达式在赋值语句中被赋值,分号将会中止变量值的重复。

如果句末没有分号,变量值将会自动显示在命令窗口(The Command Windows) 中。

>> A=[1,2,3;4,5,6] A =1 2 3 4 5 6如果在赋值语句末有分号,这种重复将会消失。

重复是一个用于检查你的工作极好的方法,但是它降低了运行速度。

因此,我们在一般情况下总是禁止重复。

尽管如此,重复计算的结果提供了一个强大的应急调试器。

如果你不能确定一个特定的赋值语句结果是多少,这时你可以去掉这个语句后的分号,当这个语句编译时,结果会显示在命令窗口(The Command Windows) 。

2.2.2 用捷径表达式赋值创建一个小数组用一一列举出元素的方法是比较容易的,但是当我们创建包括成千上万个元素的数组怎么办?把每一个元素列举出来则不太现实。

MATLAB 提供一种专门的捷径标记法,这种方法用克隆运算符(colonoperator )适用于上述情况。

克隆运算符指定一系列的数值,它指定了这个系列数的第一值,步增和最后一个值。

它的一般顺序始下first:incr:lastfirst 代表数组的每一个值,incr 代表步增量,last 代表这个数组的最后一个值。

如果步增量为1,那么步增量可省略,而变成了first:last 格式。

例如,表达式1:2:10 是创建一个1×5 行向量[1 3 5 7 9] 的简便方法。

>> x=1:2:10 x =1 3 5 7 9用克隆标记法初始化一个含有一百个元素的数组⎥⎦⎤⎢⎣⎡π,,100π2,100π ,语句如下: Angles = (.01:.01:1)*pi2.2.3 用内置函数来初始化数组也可以用MATLAB 内置函数创始化。

例如,函数zeros 可以初始化任何大小的全为零的数组。

用许多形式的zeros 函数。

如果这个函数的参数只是一个标量,那么MATLAB 将会创建一个方阵,行数和列数均为这个参数。

如果这个函数有两个标量参数,那么第一个参数代表行数,第二个参数代表列数。

因为size 函数所返回的一个数组的行数和列数,所以它可以联合zeros 函数来创建一个相同大小零矩阵。

下面是一些用到zeros 函数的例子。

>>a = zeros(2); >>b = zeros(2,3); >>c = [1 2;3 4]; >>d = zeros(size(c))这些语句产生下列的数组⎥⎦⎤⎢⎣⎡000=0 a ⎥⎦⎤⎢⎣⎡=0 0 00 0 0b ⎥⎦⎤⎢⎣⎡0=⎥⎦⎤⎢⎣⎡=0 00 d 4 32 1c相似地,ones 函数产生的数组包含的元素全为1,eye 函数通常用来产生单位矩阵,只有对角线的元素为1.其他元素为0.表2.1 列出一些用于初始化变量的函数函数 作用zeros(n) 创建一个n ×n 零矩阵 zeros(n,m) 创建一个n ×m 零矩阵zeros(size(arr)) 创建一个与数组arr 的零矩阵 ones(n) 创建一个n ×n 元素全为1 矩阵 ones(n,m) 创建一个n ×m 元素全为1 矩阵 eye(n) 创建一个n ×n 的单位矩阵 eye(n,m) 创建一个n ×m 的单位矩阵length(arr) 返回一个向量的长度或二维数组中最长的那一维的长度 size(arr)返回指定数组的行数和列2.2.4 用关键字input 初始化变量关键字input 用来提示使用者和直接从键盘输入初始化变量.当脚本文件(Script files) 时, 它可以用来提示使用者输入.input 函数在命令窗口(The Command Windows) 显示提示语句,并等待用户输入一个值.例如,下面的赋值语句: my_val = input('Enter an input value:')当这个语句被编译时,MATLAB 打印出字符串enter an input value:, 然后等待用户回复. 如果要只输入一个数,那么只需要直接键入,如果要输入一个数组,则必须带上中括号([]). 不管怎样,当按下回车键时.在窗口输入的任何值都会被储入变量my_val. 如果只按下回车键,那么这个变量就存储了一个空矩阵.如果input 函数中有字符's'做为它的第二个参数,输入的数据就被当字符串.因此,语句>> in1 = input('enter data:');Enter data:1.23把数值1.23 存储到in1 中.而语句>> in2 = input('enter data:','s')Enter data:123把字符串1.23 存储到in2 中.2.3 多维数组2.3.1 多维数组在内存中的存储一个有m 行和n 列的二维数组包括m×n 个元素,这些元素在计算机的内存中将会占有m×n 个连续的内存空间。

相关文档
最新文档