百度文库 - 好好学习,天天向上
第一章
、MATLAB数据类型 数值、逻辑、字符串、元胞、结构、类 、数值类型 分类方法一:
双精度型 (系统默认类型)
单精度型\\带符号整数\\无符号整数
分类方法二:
标量\\数组\\矩阵 分类方法三: 实数\\复数 、字符串类型 字符串:包含在一对单引号中的字符集合
>> s='hello, MATLAB' s =
hello, MATLAB 、变量和表达式
变量的命名方式: a) 变量名由字母、数
字和下划线组成; b) 变量名中的英文字
母大小写是有区别的;
c) 变量名的最大长度
是有规定的
、MATLAB系统的特殊变量和常数 特殊变意 量 义 ans 如果用户未定义变量名,系统用于计算结果存-1
储的默认变量名 pi 圆周率π(= ...) inf或无穷大∞Inf 值,如1/0 eps 浮点运算的相对精度2^(-52) 也叫MATLAB定义的正的极小值 realma最大的正x 浮点数,2^(1024)-1 realmi最小的正n 浮点数,2^(-1022) NaN或不定量,nan 如0/0或inf/inf i或j 虚数单位 nargin 函数输入参数个数 nargout 函数输出参数个数 lasterr 存放最新的错误信息 lastwar存放最新n 的警告信息 、数学函数 三角函数
sin(x) 正弦值、asin(x) 反正弦值、 cos(x) 余弦值 、acos(x) 反余弦值、 atan(x) 正切 指数函数
exp(x) 指数运算 log(x) 自然对数
sqrt(x) 求平方根 复数函数
abs(x) 求绝对值a
imag(x) 取出复数的虚部 real(x) 取出复数的实部 conj(x) 复数共轭 数论函数
round(x) 四舍五入 mod(x,y) 求余数
lcm(x,y) 整数x和y的最小公倍数
gcd(x,y) 整数x和y的最大公约数
例1-3 计算下式的结果,其中a=, b=
第二章 数据类型(跟第一章说的有点不本样^-‘)
数据类型包括数值型、字符串型、元胞型、构架型等。数值型有单精度型、双精度型和整数型。整数型有
uint8,uint16,uint32和uint64等无符号型和int8,int16,int32和int64等符号型整数。 冒号表达式
t1=0::1 t2=5:-1:2 内建函数
1) 通用特殊矩阵 zeros 产生全0矩阵
ones 产生全1矩阵 eye 产生单位矩阵 rand 产生0~1间均匀
百度文库 - 好好学习,天天向上
分布的随机矩阵
randn 产生均值为0,方差为1的标准正态分布随机矩阵
(3)建立一个与矩阵A同样大小零矩阵。 >>A=[1 2 3;4 5 6]; %产生一个2×3阶矩阵A >>zeros(size(A)) %产生一个与矩阵A同样大小的零矩阵
例3.2 建立随机矩阵: 在区间[20,50]内均匀分布的5阶随机矩
阵。>>x=20+(50-20)*rand(5) 均值为、方差为的5阶正态分布随机矩 *randn(5)
此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。
(2) 范得蒙矩阵 vander(V)
>>v1=vander([1;2;3;5]) >>v2=vander(1:3) >>v3=vander(1:4) (3)希尔伯特矩阵
hilb(n) 生成n阶的希尔伯特矩阵
invhilb(n) 求n阶的希尔伯特矩阵的逆
例2-11 求4阶希尔伯特矩阵及其逆矩阵。
>>format rat %以有理形式输出 >>H=hilb(4)
>>invH=invhilb(4)
(4)托普利兹矩阵 toeplitz(x)
功能:用向量x生成一个对称的托普利兹矩阵。矩阵元
-2
素除第一行第一列外,其他
每个元素都与左上角的元素相同。
toeplitz(x,y) 功能:生成一个以x为第一列,y为第一行的托普利兹矩阵。其中x, y均为向量,两者不必等长。 例2-12 产生托普利兹矩阵。
>>T1=toeplitz(1:4) >>T2=toeplitz(1:3,3:6) (5) 伴随矩阵
compan(p) 功能:生成伴随矩阵,其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。 例2-13 为了求多项式的x3-7x+6的伴随矩阵,可使用语
句:>>p=[1,0,-7,6];c=compan(p)
(6) 帕斯卡矩阵
n阶帕斯卡矩阵的生成函数的格式: pascal(n) 例2-14 求(x+y)4的展开式。
>>p1=pascal(4)
(7)哈达玛矩阵
n阶哈达玛矩阵的生成函数的格式:hadamard(n) 例2-17 演示矩阵元素的标识和扩充矩阵的方法 >>a=[1 2;3 4;5 6]; %建立一个2×3的矩阵
>>a12=a(1,2) %引用a(1,2)的值
>>a(3,3) %引用a(3,3)的值,(3,3) 超出矩阵的大小,出错
>>a(3,3)=9 %扩充2×3的矩阵为3×3的矩阵,并给a(3,3)赋值
例2-20 演示建立3×4的矩
阵并取子数组的方法
>>a=[1 2 3 4;5 6 7 8;9 10 11 12]; >>a(1,:) >>a(:,end)
>>a24=a(2,4) % 取a的第二行、第四列的元素 >>a(1:2:4,:) >>a(:,1:2:end)
>>a1=a([1,2],[2,3,4]) >>a2=a([1,2],[2,3,1]) >>a3=a([3,1],:)
>>a([1,3],[2,4])=zeros(2) %对a([1,3],[2,4])赋值
数组的赋值
例2-21 演示全元素方式赋值的方法
>>a=zeros(2,3); b=1:6; a(:)=b >>a =
1 3 5 2 4 6
矩阵和数组的运算
1 )矩阵和数组的加减运算 例2-32 设
A???4?31???205???,B???1???1
求 A-2B 方法1:
>>A=[4 -3 1;2 0 5];B=[1 2 0;-1 0 3]; >>A-2*B
2 )矩阵和数组的乘法运算 矩阵的乘法运算符为* 数组的乘法运算符为.* 例2-34 求 (AB)T和BT×AT(T为转置运算)。 >>A=[1 -1 2;2 0 1];
>>B=[2 -1 0;1 1 3;4 2 1]; >>(A*B)'
20?03???百度文库 - 好好学习,天天向上
>>B'*A'
3 )矩阵和数组的除法运算 矩阵除法的定义为:
A\\B?A?1*BA/B?A*B?1
例2-35 求解方程组
?2x1?2x2?x3?x4?4???4x1?3x2?x3?2x4?6?8x1?3x2?3x3?4x4?12??3x1?3x2?2x3?2x4?6
>>A=[2 2 -1 1;4 3 -1 2;8 3 -3 4;3 3 -2 -2];
>>b=[4 6 12 6]‘; >>X=A\\b
例2-36 求30。、60。和90。的正弦、余弦、正切和余切函数值。 >>x=30:30:90;
>>sind(x),cosd(x),tand(x),cotd(x) %三角函数的自变量为角度值
构架数组
例2-50 使用赋值语句依次为各个域赋值的方法建立构架数组,存储两名学生的名字、学号、性别、班级信息。
>>='Wang Ming'; >>=''; >>='man'; >>='199901';
使用struct函数可以建立构架数组,格式为: S = struct
('field1',VALUES1,'field2',VALUES2,...)
例 2-51 应用struct函数可
-3
以创建例2-50的构架数组。 s=struct('name','Wang Ming','number','', 'class', '199901','sex','man')
元胞数组转换为构架数组的函数为cell2struct,格式为:
S = cell2struct(C,FIELDS,DIM) 功能:元胞数组C转换为构架数组S。其中FIELDS为字符串数组或元胞数组,DIM为元胞数组的维数。
、关系运算 例3-4 已知
A=[4,-65,-54,0,6;56,0,67,- 45,0],分析下列语句的功能。
>>find(A>4) %找出大于4的元素的序号
>> [i j]=find(A,1) %找出一个不为零的元素的行号、列号
>> [i j]=find(A,1,'first') %找出第一个不为零的元素的行号、列号 >> [i j]=find(A,1,'last')
%找出最后一个不为零的元素的行号、列号
例3-6 建立任意的3×3的矩阵,并求出能被3整除的元素。
A=[1 0 3 ;2 9 -1;-3 -9 0]; P=rem(A,3)==0 A(P)
例3-7 求三阶魔方矩阵中绝对值大于7的元素。 x=abs(a)>7;y=abs(b)>7; a(x),b(y)
逻辑运算
例3-8 求三阶和四阶的魔
方矩阵中绝对值大于7、小于10的元素及元素的数目。
a=magic(3);b=magic(4); x=abs(a)>7&abs(a)<10;y=abs(b)>7&abs(b)<10; a(x),b(y)
length(a(x)),length(b(y))
分支语句 1)if 结构
例 求一元二次方程ax2+bx+c=0的根。
a=input('a=
?');
b=input('b=
?');
c=input('c=
?');
d=b*b-4*a*c
;
x=[(-b+sqrt
(d))/(2*a),(-b-sqrt(d))/(2*a)];
disp(['x1='
,num2str(x(1)),',x2=',num2str(x(2))]); 例 计算分段函数:
2y????cos(x?1)?x?1,x?10??xx?x,x?10
x=input('请输入x的值:'); if x==10
y=cos(x+1)+sqrt(x*x+1); else
y=x*sqrt(x+sqrt(x)); end y
例:求分段函数的值。
?x2?x?6,???????x?0且xy????3?x2?5x?6??????0?x?5且x?2及x???x2?x?1????????其他
广东石油化工学院matlab部分崔得龙老师PPT内容
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)