第二讲 MATLAB基本运算
matlab2_matlab教程
x1+2x2+3x3=1 2x1+3x2+4x3=2 a=[1 2 3;2 3 4];b=[1;2]; x=a\b x= 1.00 0 x=
x1 1 2 3 1 x2 = 2 3 4 2 x3
a
x = b
x=pinv(a)b
0.83 0.33
0
-0.17
六、微分方程求解
微分方程求解的仿真算法有多种,常用 的有Euler(欧拉法)、Runge Kutta(龙 格-库塔法。 Euler法称一步法,用于一阶微分方程
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10]; a.*b ans = 2 8 18 4 15 30 49 72 90
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10];
a*b ans = 25 55 85
37 85 133
二、数据的保存与获取
把matlab工作空间中一些有用的数 据长久保存下来的方法是生成mat数 据文件。 save —— 将工作空间中所有的变 量存到matlab.mat文件中。 默认文件名
save data——将工作空间中所
有的变量存到data.mat文件中。
save data a b ——将工作空间 中a和b变量存到data.mat文件中。
rand —— 随机矩阵
eye —— 单位矩阵
zeros ——全部元素都为0的矩阵
ones ——全部元素都为1的矩阵
还有伴随矩阵、稀疏矩阵、魔方 矩阵、对角矩阵、范德蒙等矩阵的创 建,就不一一介绍了。
注意:matlab严格区分大小写字母,因
此a与A是两个不同的变量。 matlab函数名必须小写。
第二章 Matlab基本运算
2.2 矩阵和数组的算术运算
(1)使用 from:step:to方式生成向量 (1)使用 from:step:to方式生成向量 适用范围:等差的行向量(递增或递减) 适用范围:等差的行向量(递增或递减) 命令格式: 命令格式:from:step:to 说明: from step和to分别表示开始值 步长和结束值; 说明:from,step和to分别表示开始值,步长和结束值; from, 分别表示开始值,
特殊数组
产生均匀分布的随机数组, rand(d1,d2,d3,…) 产生均匀分布的随机数组,元 素取值范围为0.0 0.0~ 素取值范围为0.0~1.0
2.2 矩阵和数组的算术运算
2.2.2 数组的操作
1.数组的元素 1.数组的元素 元素引用的方式: 元素引用的方式: 全下标方式 (1)全下标方式 (1)全下标方式 单下标方式
特殊变量名 ans pi eps inf 或INF NaN 或nan 取值 运算结果的默认变量名 圆周率π 浮点数的相对误差 无穷大,如1/0 不定值,如0/0,∞/∞,0×∞ 特殊变量名 i或 j nargin nargout realmin realmax 取值 i=j= ,虚数单位
例2_1
函数的输入变量数目 函数的输出变量数目 最小的可用正实数 最大的可用正实数
数据类型 单精度型single 单精度型single 双精度型double 双精度型double 存储空间 4字节 8字节 表示范围 -3.40282×1038 ~+ 3.40282× 3.40282× 3.40282×1038 -1.79769×10308 ~ 1.79769× +1.79769× +1.79769×10308 single() double()
第二讲 MATLAB基本运算
g(1,:)=[]
%删除整个一行
2022/10/31
17
2.2 矩阵基础与操作(续)
矩阵连接(由小矩阵连接成大矩阵) 例如: ag=[a ones(size(a)); zeros(size(a)) -a]
ag1=[a;10 11 12], ag2=[a [10 11 12]']
2022/10/31
2022/10/31
19
2.2.2 向量(数组)的生成
向量是仅有一行或一列的矩阵,所以矩阵的创 建方法适用于向量 a=m:p:n %以m为起点n为终点生成步
长为p的均匀等分向量 a=m:n %p=1时可省略 linspace(m,n,s) %生成始于m终于n的s个线
性等分点 linspace(m,n) % s=100时可省略
第 2 章 MATLAB基本操作
2.1 MATLAB表达式 2.2 矩阵基础与操作 2.4 逻辑和关系运算 2.5 操作和特殊字符 2.6 基本矩阵和矩阵操作 2.7 基本数学函数
2022/10/31
1
2.1.1 变量
MATLAB 语言的变量名规则
以字母开头,后面可跟字母、数字、下划线 区分字母大小写 注:不需声明,不需指明类型
2022/10/31
3
2.1.3 数值
通过菜单可设置数值的输出格式 复数的产生
c=a+i*b %产生实部为a虚部为b的复数c real(c) %求复数c的实部 imag(c) %求复数c的虚部
2022/10/31
4
2.1.4 运算符
数学运算符 关系运算符 逻辑运算符 位运算符 集合运算符
2022/10/31
x1=a+b, x2=b*a, x3=a*c, x4=a*d, x5=a.*d y1=a-10, y2=diag(a), y3=diag([10 20 30]) z1=fliplr(e), z2=flipud(e), z3=reshape(e,4,2) z4=cat(1,e,f) z5=cat(2,e,f) z6=cat(3,e,f) z7=repmat(c,2,2), z8=fix(100*(10-20*rand(2,5)))/100
第二讲 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
第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基本计算和基础知识
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 数值类型
数值类型分类方法
根据数据存 储空间和方 式分类
根据数据结 构分类
MATLAB-第二章基本运算
提问:什么是复数的共轭值?
第二章 MATLAB的基本运算
实战11:函数 sin
功能 正弦函数 格式 Y = sin(X) % 计算参量X(可以是向量、矩阵,元素可以是复数) % 中每一个角度分量的正弦值Y
第二章 MATLAB的基本运算 一、基本运算 2 format命令(page3, 表1-2)
用pi来测试一下精度: >>pi >>format short >>pi >>format long >>pi >>format rat >>pi
第二章 MATLAB的基本运算 二、变量
变量——程序执行过程中可以变化的量。
MATLAB中的变量可以由用户指定变量名。 通过变量名随时可以引用变量和修改变量。
第二章 MATLAB的基本运算 二、变量
MATLAB特殊之处:无需进行变量声明。
(遇到新变量名时,自动生成变量, 并指定合适的存储空间。 如变量早已存在,则自动更新。) ***利与弊的分析***
第二章 MATLAB的基本运算 二、变量 1.系统特殊变量
第二章 MATLAB的基本运算
小整理:MATLAB常用的基本数学函数
sign(x):符号函数 (Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的余数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数 log2(x):以2为底的对数 log10(x):以10为底的对数
第二讲 MATLAB基本操作
三、矩阵及其运算
(四)矩阵的基本数值运算
(1)矩阵与常数的四则运算(同向量与数的四则运算) 矩阵与常数的四则运算(同向量与数的四则运算) 矩阵与常数的四则运算是指矩阵各元素与常 数之间的四则运算。 数之间的四则运算。 例如: 例如 a=[1,2,3;4,5,6;7,8,9]; 求: c=a+2; d=a-2; e=a*2; f=a/2;
(一)矩阵的生成
矩阵的生成有多种方式,通常使用的有四种: 矩阵的生成有多种方式,通常使用的有四种: (1)在命令窗口中直接输入矩阵; 在命令窗口中直接输入矩阵; 把矩阵的元素直接排列到方括号中, 把矩阵的元素直接排列到方括号中,每行 内的元素用空格或逗号相隔, 内的元素用空格或逗号相隔,行于行之间的内 容用分号相隔。 容用分号相隔。 通过语句和函数产生矩阵; (2)通过语句和函数产生矩阵; 文件中建立矩阵; (3)在M文件中建立矩阵; 从外部的数据文件中导入矩阵; (4)从外部的数据文件中导入矩阵; 例如: 例如 a=[1 2 3;4 5 6;7 8 9], b=[2,4,6,8;1,3,5,7;1,2,3,4],
四、数组及其运算
(一)数组的生成
(1)在命令窗口中直接输入向量 格式:a=[a1,a2,a3, …an ] 格式: (2)等差元素向量的生成 生成法: 格式: (i)冒号“:”生成法: 格式:a=a1:m:an )冒号“ (ii)使用线性等分向量函数 )使用线性等分向量函数linspace法: 法 格式: 格式:a=linspace(a1,an,n)
三、矩阵及其运算
(三)矩阵中元素的操作
的第r行 (1)提取矩阵 的第 行:A(r,:) )提取矩阵A的第 ( ,:) 的第r列 (:,r) (2)提取矩阵 的第 列:A(:, ) )提取矩阵A的第 (:, 的每一列, 拉伸为一个列向量: (:) (3)依次提取矩阵 的每一列,将A拉伸为一个列向量:A(:) )依次提取矩阵A的每一列 拉伸为一个列向量 (4)取矩阵 的第 1~i2行、第j1~j2列构成新矩阵 的第i 列构成新矩阵:A(i1:i2, j1:j2) )取矩阵A的第 的第i 构成新矩阵:A(i2:-1:i1,:) (5)以逆序提取矩阵 的第 1~i2行,构成新矩阵 )以逆序提取矩阵A的第 : 的第j 构成新矩阵:A(:, j2:-1:j1 ) (6)以逆序提取矩阵 的第 1~j2列,构成新矩阵 )以逆序提取矩阵A的第 : 的第i 构成新矩阵:A(i1:i2,: ] ,:)=[ (7)删除 的第 1~i2行,构成新矩阵 )删除A的第 的第j 构成新矩阵:A(:, (8)删除 的第 1~j2列,构成新矩阵 :, j1:j2)=[ ] )删除A的第 拼接成新矩阵: (9)将矩阵 和B拼接成新矩阵:[A B];[A;B] )将矩阵A和 拼接成新矩阵 ; ;
MATLAB课件第二章 MATLAB语言的数值计算
2.1.3 变量精度
在matlab中,变量的精度问题不需要设 定,一律使用双精度,但是我们可以通过 format命令或者更改preferences中的 Numericformat项来更改数据的显示格式. 命令格式为:format short
2.1.4 永久变量
Matlab语言设置了一些永久变量 eps,pi,Inf,NaN,i,j,nargin,nargout, realmax,realmin (1)这些变量不能被clear清除; (2)这些变量不响应who和whos; (3)nargin,nargout为函数变量; (4)pi,i,j,realmax,realmin为机器常数变 量; (5)Inf 为无穷变量,NaN为非数变量.
2、矩阵乘()运算规则:
A矩阵的列数必须等于B矩阵的行数;
标量可与任何矩阵相乘。
除算) .^ 点乘方(用于矩阵点运算) ./ 点除(用于矩阵点运算) kron 张量积 ‘ 矩阵转置 inv 矩阵求逆 fliplr 矩阵左右翻转 flipud 矩阵上下翻转 rot90 矩阵逆时针方向旋转90度
线性代数方程组的表达式为AX = B或者 XA = B,由于矩阵维数的不同,方程组解 的形式也不同,设解向量X为n×1维的,系 数矩阵A的维数为m×n维的,系数矩阵B 的维数为n×1维的;那么方程组的解可以 分为以下三类: m=n,为恰定方程,可求得唯一解; m>n,为超定方程,求最小二乘解,多 于一组解; m<n,为欠定方程,解无实际意义,解 中至多有m个非零元素。
例2.27 已知矩阵a,求特征多项式与特征根。
3、多项式计算 我们可以利用polyval函数来计算出多项 式在指定点处的值,例如:
4、卷积和反卷积(多项式乘法与除法) 例如:求a(x)=x^3+2x^2+3x+4和 b(x)=x^3+4x^2+9x+16的乘积c(x);
2、MATLAB的数学运算基础
例子: 计算表达式的值,并显示计算结果。
在MATLAB命令窗口输入命令: x=1+2i; y=3-sqrt(17); z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y)) 输出结果是:
z= -0.3488 + 0.3286i
六、MATLAB的数值显示格式 的数值显示格式
• 和其他的程序设计语言不同,MATLAB能 自动根据赋值和操作来识别变量类型。即 变量使用之前,不需要指定变量的数据类 型,也不必事先声明变量。
MATLAB中变量的作用域一般默认为局 部变量,仅在当前调用的M文件中有效。如 果要定义全局变量,则必须用global来声明。 一般情况下,为了和局部变量有所区别, 常将全局变量用大写字母表示,但这并不 是必需的,只是人为的一种约定而已。
• • • •
>> clear xy yx %删除变量xy及yx >> whos >> xy %这时变量xy已经不存在了 ??? Undefined function or variable 'xy'.
其它
• 保存工作空间
命令格式: >>save filename variables
• 将变量列表variables所列出的变量保存到磁盘文 件filename中 • Variables所表示的变量列表中,不能用逗ariables时,表示将当前工作空间中所有 变量都保持到磁盘文件中。 • 缺省的磁盘文件扩展名为“.mat”,可以使用“-” 定义不同的存储格式(ASCII、V4等)
• 5.2、表达式的规则
MATLAB的表达规则与一般手写算式基 本相同。
• a) 表达式由变量名、运算符和函数名组成。 • b) 表达式按优先级自左向右运算,括号可改变优 先级顺序。 • c)优先级顺序由高到底为:指数运算、乘除运算、 加减运算。 • d)表达式中赋值符“=”和运算符两侧允许有空格。
Matlab_第2章_MATLAB基本运算
例2-5
>>x=0:1:10
x= 0 1 2 3 4 5 6 7 8 9 10
>>a=-2.5:0.5:2.5
a = Columns 1 through 9 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000 0 0.5000 1.0000 1.5000 Columns 10 through 11 2.0000 2.5000
arr2(1,:) = arr2(:,1:2:3) =
[123]
1 3 2 4 3 5
2 3 1 2 3 4 4 5 3
a(5)=
2Leabharlann a(1,2)=22.子矩阵的产生(Subarrays)
子矩阵是从矩阵中取出其中一部分元素构成的。
For example, suppose array a is defined as follows. a = [1 -2 3 -4 5];
区别于a(1,4)
Then a(3) is just 3, a ([1 4] ) is the array [1 -4], and a(1:2:5) is the array [1 3 5].
y=
%从0.01~100取5个点
0.0100 0.1000 1.0000 10.0000 100.0000
3.矩阵 矩阵是m行n列(m×n)的二维数组,需要使 用‚[ ] 、, 、; 、空格‛等符号创建。 例2-7 创建矩阵。
>> a=[1:4;linspace(2,5,4);9:-1:6] a= 1 2 3 4 2 3 4 5 9 8 7 6 >> b=[1 2 3 4 5 6] %使用回车分隔行 b= 1 2 3 4 5 6
第二讲 MATLAB的数值计算 —— matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位
x=a\b x= 2.00 3.00
2.超定方程组的解
方程 ax=b ,m<n时此时不存在唯一解。 方程解 (a ' a)x=a ' b
x=(a' a)-1 a ' b —— 求逆法 x=a\b —— matlab用最小二乘法找一
个准确地基本解。
例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3
特征多项式一定是n+1维的
特征多项式第一个元素一定是1
例:a=[1 2 3;4 5 6;7 8 0]; p=poly(a)
p =1.00 -6.00 -72.00 -27.00 p是多项式p(x)=x3-6x2-72x-27的
matlab描述方法,我们可用: p1=poly2str(p,‘x’) — 函数文件,显示 数学多项式的形式
matlab函数名必须小写。
3. 矩阵的修改
直接修改 可用键找到所要修改的矩阵,用键
移动到要修改的矩阵元素上即可修改。 指令修改
可以用A(,)= 来修改。
例如
a=[1 2 0;3 0 5;7 8 9]
a =1 2 0
305 789
还可以用函数subs
a(3,3)=0 a =1 2 0
p1 =x^3 - 6 x^2 - 72 x - 27
2.roots —— 求多项式的根
a=[1 2 3;4 5 6;7 8 0];p=poly(a) p=
1.00 -6.00 -72.00 -27.00 r=roots(p) r = 12.12
-5.73 ——显然 r是矩阵a的特征值 -0.39
用除法求的解x是具有最多零元素的 解 是具有最小长度或范数的解,这个 解是基于伪逆pinv求得的。
第2讲 MATLAB基本元素与基本运算
第2讲基本元素与基本运算任课教师:孙博文(计算中心)办公室:西区1-916电话:86390622Email:sunbw01@QQ:1456174486第二讲基本元素与基本运算•变量与常量•向量、矩阵与数组•标点符号•数学运算符•数学运算•矩阵关系运算•矩阵逻辑运算2.1 变量•MATLAB 语言的变量命名规则是:(1) 变量名必须是不含空格的单个词;(2) 变量名区分大小写;(3) 变量名最多不超过19个字符;(4) 变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号2.2 保留常量特殊变量取值ans 用于结果的缺省变量名pi 圆周率eps 浮点数相对误差inf 无穷大,如1/0NaN 不定量,如0/0i,j i=j=1向量:相当于一维数组,如a=[1,2,3,4, 5]a=12345也可以写成a=[1 2 3 4 5] 或a=[1:1:5]列向量b=a’ (转置)b=12345向量是单行或单列矩阵!矩阵:相当于多维数组,如a=[1,2,3;4,5,6;7,8,9]a=123456789也可以写成a=[1 2 3;4 5 6;7 8 9] 或a=[1:3;4:6;7:9]b=a’b=147258369几种特殊矩阵:(1)a=[ ]%空矩阵(2)a=zeros(2,3)%零矩阵(3) a=ones(2,3)%1矩阵(4)a=rand(2,3)%随机矩阵(5)矩阵元素的访问a=[1:3;4:6;7:9]则:a(3,2)ans=8a=123456789•基本语句格式B=A(v 1,v 2)v 1、v 2分别表示提取行(列)号构成的向量。
例:>> A=[1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0]A =1 2 3 43 4 5 65 6 7 87 8 9 0>> B1=A(1:2:end,:) %提取全部奇数行、所有列。
B1 =1 2 3 45 6 7 8(6) 子矩阵提取>> B2=A([3,2,1],[2,3,4]) %提取3,2,1行、2,3,4列构成子矩阵。
学习matlab(Matlab基础知识)
第二讲Matlab基础知识1.标识符把标志变量、常量或文件名的特定字符称为标识符,Matlab规定必须是英文字母、阿拉伯数字和下划线等符号组成的字符串,第一个符号必须是英文字母。
2.Matlab中的数据及变量类型有三种类型的基本数据:(1)数值型数据,简称数值(Double Array):一般输入的数字均为数值数据,包含实数、复数。
(2)字符串型数据,简称字符量(Char Array):用英文格式单引号加以界定的数字、字符、各种符号、表达式、方程式和汉字等。
(3)符号型数据,简称符号量(Sym Object):用sym和syms可以把字符、表达式、方程、矩阵等定义成数学符号,称为符号型数据,运算结果为数学表达式。
在命令窗口中键入class(a),回车可知已有变量a是哪一种类型的数据。
3.变量名及赋值(略)2.1 数值矩阵2.1.1 永久性数值变量名除了i、j、pi、eps(浮点运算相对精度10-52)、Inf、NaN外还有,realmin(最小正浮点数2-1022)、realmax(最大正浮点数21023)。
2.1.2 数值矩阵的创建1.直接输入法>>a=[1 6 1;4 6 2;9 3 8];>> b=[2-3i,3+5i,2i;3,9i,6;5-i,7i,4];3.变换矩阵结构的命令flipud(a)——输出矩阵a上下翻转后的矩阵;fliplr(a)——输出矩阵a左右翻转后的矩阵;rot90(a,k)——输出矩阵a沿逆时针旋转k个90度后的矩阵,k为正负整数;rot90(a)——输出矩阵a逆时针旋转90度后的矩阵;reshape(A,m,n)——输出一个m×n=k阶矩阵,它是由矩阵a的k个元素重新排列构成的矩阵,重排前后元素在矩阵中的符号不变。
4.一批特殊向量(行矩阵)的创建(1)等差数列型向量的创建增量输入法:t=a:h:b或t=[a:h:b],>> t=(a:h:b),a、b为起始值,h为公差,可正,可负,省略时为1.例如>> t=0:0.1:2*pi线性等分命令t=linspace(a,b,n),a、b为起始值,n为(b-a)的等分点个数。
第2章 MATLAB基本运算
第2章MATLAB基本运算2.1数据类型MATLAB 7.3定义了15种基本的数据类型,包括整型、浮点型、字符型和逻辑型等,用户甚至可以定义自己的数据类型。
2.1.1常数和变量1. 常数2. 变量MATLAB的变量命名规则如下:•变量名区分字母的大小写。
例如,“a”和“A”是不同的变量。
•变量名不能超过63个字符,第63个字符后的字符被忽略。
•变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能含有空格和标点符号(如,。
%等)。
•关键字(如if、while等)不能作为变量名。
(2)特殊变量2.1.2整数和浮点数1. 整数2. 浮点数2.1.3 复数MATLAB用特殊变量“i”或“j”表示虚数的单位。
复数的产生可以有几种方式:z=a+b*i或z=a+b*jz=a+bi或z=a+bj(当b为常数时)z=r*exp(i*theta)z=complex(a,b)2.2 矩阵和数组的算术运算•空数组(empty array):没有元素的数组;•标量(scalar):是指1×1的矩阵,即为只含一个数的矩阵;•向量(vector):是指1×n或n×1的矩阵,即只有一行或者一列的矩阵;•矩阵(matrix):是一个矩形的m×n数组,即二维数组;•数组(array):是指多维数组m×n×k×…,其中矩阵和向量都是数组的特例。
2.2.1 数组的创建在MATLAB中矩阵的创建应遵循以下基本常规:•矩阵元素应用方括号([])括住;•每行内的元素间用逗号(,)或空格隔开;•行与行之间用分号(;)或回车键隔开;•元素可以是数值或表达式。
1. 空数组2.向量向量包括行向量(row vector)和列向量(column vector),即1×n或n×1的矩阵。
(1)使用from:step:to方式生成向量如果是等差的行向量,可以使用“from:step:to”方式生成:from:step:to说明:from、step和to分别表示开始值、步长和结束值;当step省略时则默认为step=1;当step省略或step>0而from>to时为空矩阵,当step<0而from<to时也为空矩阵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
矩阵下标的用途
访问超出矩阵范围时,产生 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
直接输入法创建矩阵
例:创建矩阵
1 2 3 4 5 6 7 8 9
A=[1 2 3; 4 5 6; 7 8 9] A=[1,2,3; 4,5,6; 7,8,9] A=[1 2 3 456 7 8 9]
2010-12-25 14
通过M 通过M文件创建矩阵
2010-12-25
6
2.1.5 函数
MATLAB函数包括
(1) MATLAB内部函数 (2)各种工具箱中M文件提供的大量实用函数 (3)用户自己增加的函数;
函数调用语句
[返回变量列表]=函数名(输入变量列表)
函数名一般小写,要求与文件名一致 输入变量列表和返回变量列表均由若干变量名组成, 用逗号分开 可嵌套
2010-12-25
16
从外部数据文件读取
MATLAB可以处理很多数据格式,如: 记事本编写的数据文件.txt,MATLAB数据 文件.mat,Excel数据表.xls,图像文件, 声音文件等。 调入方式
2010-12-25
17
2.2.2 向量(数组)的生成 .2.2 向量(数组)
向量是仅有一行或一列的矩阵,所以矩阵的创 建方法适用于向量 a=m:p:n %以m为起点n为终点生成步 长为p的均匀等分向量 a=m:n %p=1时可省略 linspace(m,n,s) %生成始于m终于n的s个线 性等分点 linspace(m,n) % s=100时可省略
2010-12-25
32
代数运算总结
格式:A+B A-B A*B A.*B 格式 A/B A./B A\B A.\B A^B A.^B A’ A.’ 以上这些矩阵或数组的代数运算是MATLAB 的基本运算。
2010-12-25
33
2.3.2 矩阵的关系运算
关系运算符
>, >=, <, <=, ==, ~= 关系成立为1,不成立则为0 按照点运算规则定义,对两个矩阵的对应元 素进行比较,要求两个矩阵同型。
2010-12-25 4
2.1.3 数值
通过File/Preferences菜单可设置数值的 输出格式 复数的产生
c=a+i*b real(c) imag(c) %产生实部为a虚部为b的复数c %求复数c的实部 %求复数c的虚部
2010-12-25
5
2.1.4 运算符
数学运算符 关系运算符 逻辑运算符 位运算符 集合运算符
矩阵右除:XA = B,求 X MATLAB求解:X=B/A A不是方阵,最小二乘解
2010-12-25
28
数组除法
MATLAB表示 c = a. \ b = b. / a 其中 ci = bi / ai i = 1, 2, ⋯, n
i = 1, 2, ⋯, n 注意:相除的数组必须有相同的阶数
2010-12-25
2.3 矩阵基本运算
2.3.1 矩阵的代数运算 2.3.2 矩阵的关系运算 2.3.3 矩阵的逻辑运算
2010-12-25
24
2.3.1 矩阵的代数运算
矩阵表示 矩阵转置
数学表示
MATLAB 求解
2010-12-25
25
矩阵加减法
注意其一为标量的情形
矩阵乘法
数学表示
MATLAB 表示 注意相容性
2010-12-25
34
2.3.3 矩阵的逻辑运算
逻辑运算
与运算 或运算 非运算 与非运算
2010-12-25
35
逻辑运算运算法则 逻辑运算运算法则
①参与逻辑运算的可以是两个标量、两个同维矩 阵或参与逻辑运算的元素一个为标量,另一个 为矩阵。 ②在算术、关系、逻辑运算中,算术运算优先级 最高,关系运算次之,逻辑运算优先级最低。 注意:逻辑操作有相应的M文件:A&B等效于 and(A,B),A|B等效于or(A,B), ~A等效于 not(A)。
第二讲
MATLAB运算基础 MATLAB运算基础
2010-12-25
1
2.1 MATLAB语言的基本要素 语言的基本要素 2.2 矩阵 2.3 基本数学运算 2.4 基本数学函数 2.5 矩阵的特殊操作 2.6 多维矩阵
2010-12-25
2
2.1 MATLAB语言的基本要素
2.1.1 变量
MATLAB 语言的变量名规则
2010-12-25
10
2.2 矩 阵 .2
矩阵是MATLAB的核心,是最基本的数据 对象。MATLAB的大部分运算或命令都是在 矩阵运算的意义下执行的。 在MATLAB中,不需对矩阵的维数和类型 进行说明,MATLAB会根据用户所输入的内 容自动进行配置。
2010-12-25
11
2.2.1 矩阵的创建 .2.1
2010-12-25 36
逻辑函数
MATLAB还提供了许多测试用的逻辑函数。 1. all函数测定矩阵中是否全为非零元素 例如:a=[1 2;0 4]; b=all(a) b=0 1 c=all(all(a)) c=0
2010-12-25 37
逻辑函数
2. any函数测试出矩阵中是否有非零值 a=[1 2 0;4 0 0;0 5 0]; any(a) ans=1 1 0 这说明矩阵a中第1、2列包含有非零值, 而第3列不包含非零值。
2010-12-25
22
矩阵下标的用途
(3)矩阵行列删除 利用空矩阵可从矩阵中删除指定的行或列。 例:要删除第二行 b(2, :)=[ ] 要删除第二列 b(:,2) = [ ] 注意:将矩阵某元素附空值与赋零值完全不同 b(1,2) = [ ]出错! b(1,2) = 0 可以
2010-12-25 23
29
矩阵乘方
数学表示:A 为方阵,求 MATLAB 实现: a ^ p —— a 自乘p次幂
ቤተ መጻሕፍቲ ባይዱ
方阵
整数
对于p的其它值,计算将涉及特征值和特征向量, 如果p是矩阵,a是标量a^p使用特征值和特征向量 自乘到p次幂;如a,p都是矩阵,a^p则无意义。
2010-12-25 30
数组乘方
MATLAB表示 其中
2010-12-25
39
例子
例:a=zeros(3,3); a(3,3)=0.5; a(2,2)= -0.4; [i,j,v]=find(a) i=2 3 v= -0.4000 0.5000
2010-12-25
find(a) ans =[5,9]’
j=2 3
40
逻辑函数
4.exist函数检查变量、函数、文件是否存在 if exist(‘sg.dat’) load sg.dat else sg=zeros(30,2) end 当存在sg.dat时直接将数据读入到MATLAB 的sg变量中,不存在时将sg初始化成全零矩阵。
8
MATLAB语句 2.1.7 MATLAB语句
MATLAB语句(命令)有两种形式: (1) 变量=表达式 (2) 表达式 “表达式”由变量名、常数、函数和运 算符构成 第二种语句形式下,将表达式的值赋 MATLAB的永久变量ans。
2010-12-25
9
标点在语句中的用途
;--不在命令窗口中显示结果 %--用于注释语句 …--续行
2010-12-25 19
矩阵下标的用途
(1)利用下标修改矩阵元素,很方便 例:a(2,3) = 15; a(2,1:3) = [5 10 15]; 这时a的第二行变成5 10 15 a 5 15,其他行不变 备注:也可以采用矩阵元素的序号来引用矩 阵元素。矩阵元素按列编号,先第一列,再第二 列,依次类推。 以m×n矩阵A为例,矩阵元素A(i,j)的序号为 (j-1)*m+i。
创建矩阵的原则
①矩阵的元素必须在方括号“[ ]”中; ②矩阵的同行元素之间用空格或逗号“,”分隔; ③矩阵的行与行之间用分号“;”或回车符分隔; ④矩阵的尺寸不必预先定义; ⑤矩阵的元素可以是数值、变量、表达式或函数
2010-12-25
12
创建矩阵的四种方法