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基本运算

矩阵下标的用途
访问超出矩阵范围时,产生 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基础知识)

第二讲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)的等分点个数。
第二讲 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第二讲__数值计算和符号计算

(4)数值运算中必须先对变量赋值;符号运算无须事先对变 量赋值,但必须先定义,运算结果以标准的符号表达 式形式给出。
Matlab基础应用 21
2.2.2 符号运算中的运算符
(1)基本运算符 符号矩阵:‚+”,‚-”,‚*‛,‚\”, ‚/”, ‚^”, ‚ ’ ” 符号数组:‚.*”,‚./”,‚.\‛,‚.^”, ‚.’ ” (2)关系运算符 运算符只有‚==”,‚~=”。
Matlab基础应用 7
1.3.4 多项式乘除运算(续)
例4: a(x)=x2+2x+3; b(x)=4x2+5x;求c=a(x)*b(x)。 解: >>a=[1 2 3];b=[4 5 0]; >>c=conv(a,b) c= 4 13 22 15 0 >>[d,r]=deconv(c,a) d= 4 5 0 r= 0 0 0 0 0
注意: 方法一只创建了符号表达式,没有创建符号变量; 而方法二既创建了符号表达式,又创建符号变量.
Matlab基础应用 19
2.1.3 创建符号矩阵
使用sym和syms命令创建
例4: A=sym(‘[a,b;c,d]’) A= [ a, b] [ c, d] syms f g h k B=[f,g;h,k] B=
%方法二
Name Size Bytes Class a 1x1 126 sym object b 1x1 126 sym object c 1x1 126 sym object f2 1x1 146 sym object x 1x1 126 sym object Grand total is 20 elements using 650 bytes
第二讲 MATLAB 绘图

绘制y=1-exp(0.3*t).*cos(0.7*t)
t=6*pi*(0:100)/100; y=1-exp(-0.3*t).*cos(0.7*t); tt=t(find(abs(y-1)>0.05)); ts=max(tt); plot(t,y,'r-'); grid on; axis([0,6*pi,0.6,max(y)]); title('y=1-exp(-\alpha*t)*cos(\omega*t)'); hold on; plot(ts,0.95,'bo'); hold off; set(gca,'xtick',[2*pi,4*pi,6*pi],'ytick',[0.95,1,1.05,max(y)]); grid on;
绘制曲线
x t cos(3t ) , t 2 y t sin t
t = -pi:pi/100:pi; x = t.*cos(3*t); y = t.*sin(t).^2; plot(x,y)
2015-5-14 10
图形标识
图形标识包括:
图名(title) 坐标轴名(xlabel、ylabel) 图形文本注释(text) 图例(legend)
2015-5-14 22
双纵坐标:plotyy指令
plotyy指令调用格式:
plotyy(x1, y1, x2, y2)
x1-y1曲线y轴在左, x2-y2曲线y轴在右。
例3.7:
x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); plotyy(x,y1,x,y2);
matlab-第2讲

函数使用说明: (1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的模、字符串的ASCII 码值. (3) 用于取整的函数有fix、floor、ceil、round,要注意它们的 区别。
• • • •
fix():向0方向靠拢取整 floor():向左取整,即向负无穷方向取整 ceil():返回大于等于指定表达式的最小整数,即向正无穷方向取整 round ():四舍五入 rem(x,y)=x-y.*fix(x./y) mod(x,y) )=x-y.*floor(x./y) rem(x,y)和mod(x,y)要求x,y必须为相同大 小的实矩阵或为标量。
A=
1 1 1 1 8 4 2 1 27 9 3 1 125 25 5 1
(3) 希尔伯特矩阵 在MATLAB中,生成希尔伯特矩阵的函数是hilb(n)。 使用一般方法求逆会因为原始数据的微小扰动而产生不可靠 的计算结果。MATLAB中,有一个专门求希尔伯特矩阵的逆 的函数invhilb(n),其功能是求n阶的希尔伯特矩阵的逆矩阵。
2.1.3 内存变量的管理
1.内存变量的删除与修改 工作空间窗口(Workspace)专门用于内存变量的管理。在 Workspace窗口中可以显示所有内存变量的属性。 当选中某些变量后,再单击Delete按钮,就能删除这些变 量。 当选中某些变量后,再单击Open按钮,将进入变量编辑器。 通过变量编辑器可以直接观察变量中的具体元素,也可修 改变量中的具体元素。
1 4 2 5 3 6
Ex:1. 写出完成下列操作的命令。
a. b.
c.
d. e.
将矩阵A 第2~5 行中的第1,3,5列元素赋给矩阵B。 删除矩阵A的第7号元素。 将矩阵A的每个元素值加30。 求矩阵A的大小和维数(提示:用size函数和ndims函数)。 将含有12个元素的向量x转换成3×4矩阵。
Matlab 第二讲:Matlab中的函数

15
MATLAB is column dominant, so when sort is used with a 2-D matrix, each column is sorted in ascending order
16
查看矩阵的大小
查看矩阵的大小:size、length
size(A) size(A,1) size(A,2)
Matlab中的函数
1
函数取值
函数作用在矩阵上的取值
设 x 是变量, f 是一个函数
当 x = a 是标量时,f(x) = f(a) 也是一个标量 当 x = [x1, x2, … , xn ] 是向量时,则 f(x) = [ f(x1), f(x2), … , f(xn)] 是一个与 x 长度相同的向量
f 作用在 x 的每个分量上!
若 A 是矩阵,则 f (A) 是一个与 A 同形状的矩阵
2
函数取值
f ( a11 ) f (a ) 21 f ( A) f ( am1 ) f ( a12 ) f ( a22 ) f ( am 2 ) f ( a1n ) f ( a2 n ) f ( amn )
若参数 x 是矩阵, 则作用在其各列上
6
Function Input can be either scalars or matrices
7
内置函数的使用
Functions consist of
Name Input argument(s) Output In MATLAB sqrt (x)= result sqrt(4) ans = 2
log(x) % ln(x) 自然对数 (以 e 为底) log2(x) % 以 2 为底的对数 log10(x) % 以 10 为底的对数 sqrt(x) abs(x) % 平方根 % 绝对值