MATLAB学习记录Word格式.docx
《MATLAB学习记录Word格式.docx》由会员分享,可在线阅读,更多相关《MATLAB学习记录Word格式.docx(54页珍藏版)》请在冰豆网上搜索。
表7.6MATLAB支持的数据文件类型21
Chapter8逻辑函数和控制结构22
表8.1关系运算符22
表8.2逻辑运算符22
表8.3find逻辑函数22
表8.4选择结构23
表8.5循环结构25
表8.6break和continue25
表8.7计时函数26
Chapter9矩阵代数27
表9.1矩阵运算和函数27
表9.2求解线性方程组27
Chapter10其他类型的数组27
表10.1数据类型27
表10.2MATLAB的整数类型28
表10.3num2str函数28
表10.4元胞数组28
表10.5结构数组29
Chapter11符号代数29
表11.1创建符号变量29
表11.2创建符号多项式——poly2sym函数sym2poly函数30
表11.3符号表达式30
表11.4函数solve的应用31
表11.5函数subs的应用31
符号绘图32
表11.6函数ezplot32
表11.7其他符号绘图函数32
表11.8符号微分——函数diff32
表11.9符号积分——函数int33
表11.10微分方程——函数dsolve33
Chapter12数值技术33
表12.1函数interp1中的插值法选项33
12.1多维插值34
表12.2线性回归——polyfit函数和polyval函数34
12.2数值微分、数值积分和微分方程的数值求解35
12.2.1数值微分35
12.2.2数值积分36
12.2.3微分方程的数值求解36
表12.3MATLAB的微分方程求解器37
Tips1MATLAB工具箱
1.2统计工具箱
统计工具箱下的4个小工具箱
名称
英文全称
简称
分布工具箱
DistributiononFittingTool
Dfittool
多项式工具箱
PolynomialFittingTool
Polytool
非线性工具箱
NonlinearFittingTool
Nlintool
方差分析工具箱
AnylysisofCovarianceTool
Aoctool
Tips2使用fopen和fscanf函数读写文档
2.1matlab的fopen函数用法
matlab中fopen函数的作用打开文件,赋予文件代号(fid)。
语法结构:
fid=fopen(datafile,permission),用指定的方式permission打开文件,datafile=[pathname,filename]。
2.1.1关于fid
fid是fopen的返回值,是赋予文件datafile的代号
fid的数值
含义
+N(N是正整数)
表示文件打开成功,文件代号是N
-1
表示文件打开不成功
fid在此次文件关闭前总是有效的。
2.1.2关于permission
“permission”是打开方式参数。
打开方式参数由以下字符串确定:
r
读出
w
写入(文件若不存在,自动创建)
a
后续写入(文件若不存在,自动创建)
r+
读出和写入(文件应已存在)
w+
重新刷新写入,(文件若不存在,自动创建)
a+
重新写入,但不自动刷新
后续写入,但不自动刷新
文件的存储格式:
文件打开的默认方式是:
二进制。
以文本方式打开,可以在方式参数“permission”中加入“t”,如“rt”,“wt+”。
2.2matlab中fscanf的用法及举例
matlab中的fscanf的用法如下:
A=fscanf(fid,format)
[A,count]=fscanf(fid,format,size)
[A,count]=fscanf(fid,format,size)
使用最多的形式是:
data=fscanf(fid,format,size);
其中data为读取内容的数组,他的大小由size决定。
size是一个[mn]的向量,m为行,n为列(注意,按行顺序读取,按列顺序排列,详见下例),若n取inf表示读到文件末尾。
fid为fopen打开文件的返回值,format是格式化参数(像printf、scanf)。
例:
将example.txt中的数据存入data文件
[fname,pname,findex]=uigetfile('
*.txt'
'
Pickafile'
);
datafile=[pname,fname];
fid=fopen(datafile,'
r'
data=fscanf(fid,'
%g'
[3,inf])
%[3,inf]中的3表示从txt文档中取值,一行一行的取,每3个作为一列,以此类推。
故[1,inf]将把txt文档中数据存为一行矢量。
直接inf是把txt文档中的数据存为列矢量。
fclose(fid);
其中,txt文档中的数据是
1611
2712
3813
4914
51015
结果data文件中存的的数据形式是:
data=
12345
678910
1112131415
Tips3通用函数get和set
对象属性包括属性名和与它们相联关的值。
属性名是字符串,它们通常按混合格式显示,每个词的开头字母大写,比如:
’LineStyle‘。
但是,MATLAB识别一个属性时是不分大小写的。
另外,只要用足够多的字符来唯一地辨识一个属性名即可。
例如,坐标轴对象中的位置属性可以用‘Position‘,‘position‘,甚至是‘pos‘来调用。
当建立一个对象时,它用一组缺省属性值,该值可以用两种方法来改变。
可以用{属性名,属性值}对来建立对象生成函数;
或者在对象建立后改变属性。
前一种方法的例子是:
»
Hf_1=figure(‘color’,‘white’)
它用缺省的属性值建立一个新的图形窗口,只是背景颜色被设为白色而不是缺省的黑色。
为了获得和改变句柄图形对象的属性只需要两个函数。
3.1get函数
函数get返回某些对象属性的当前值。
使用函数get的最简单语法是get(handle,‘PropertyName’)。
例如:
p=get(Hf_1,‘position’)
返回具有句柄Hf_1图形窗口的位置向量。
c=get(Hl_a,‘color’)
返回具有句柄Hl_a对象的颜色。
3.2set函数
函数set改变句柄图形对象属性。
使用语法set(handle,‘PropertyName’,value)。
set(Hf_1,‘Position’,p_vect)
将具有句柄Hf_1的图形位置设为向量p_vect所指定的值。
同样
set(Hl_a,‘color’,‘r’)
将具有句柄Hl_a的对象的颜色设置成红色。
一般情况下,函数set可以有任意数目的(‘PropertyName’,PropertyValue)对。
比如:
set(Hl_a,‘Color’,‘r’,‘Linewidth’,2,‘LinStyle’,‘--’)
将具有句柄Hl_a的线条变成红色,线宽为2点,线型为破折号。
除了这些主要功能,函数set和函数get还能提供帮助。
例如»
set(handle,‘PropertyName’)返回一个可赋给由handle所描述对象的属性值列表。
set(Hf_1,‘Units’)
[inches|centimeters|normalized|points|{pixels}]
表明由Hf_1所引用的图形的‘Unites’属性是五个可允许的字符串,而其中‘pixels’是缺省值。
如果指定一个没有固定值的属性,那么,MATLAB就会通知如下:
set(Hf_1,‘Position’)
A
figure’s
‘Position’
property
does
not
have
a
fixed
set
of
values。
除了set命令,句柄图形对象创建函数(例如figure,axis,line等等)接受多个属性名和属性值对。
figure(‘Color’,‘blue’,‘NumberTitle’,‘off’,‘Name’,‘My
Figure’)
创建一个图形窗口,背景为兰色,标有‘My
Figure’而不是缺省标题‘Figure
No.
1’。
Chapter2MATLAB环境
表2.1数值的显示格式
formatshort
4位有效数字
3.1416
formatlong
14位有效数字
formatshorte
4位有效数字的科学技术法
3.1416e+00
formatlonge
14位有效数字的科学技术法
formatbank
仅显示实际值的2位有效数字
3.14
formatshorteng
4位有效数字的工程计数法
formatlongeng
14位有效数字的工程计数法
format+
+,-,符号
+
formatrat
分数形式
355/113
formatshortg
MATLAB选择最佳格式
formatlongg
Chapter3MATLAB中的函数
表3.1常用数学函数
abs(x)
求x的绝对值
abs(-3)
ans=3
sqrt(x)
求x的平方根
sqrt(85)
ans=9.2195
Nthroot(x,n)
求x的n次方根,函数的输出不能是复数。
nthroot(-2,3)
ans=-1.2599
(-2)^(1/3)
ans=0.6300+1.0911i
sign(x)
x>
0,输出1
x=0,输出0
x<
0,输出-1
sign(-8)
ans=-1
rem(x,y)
求x/y的余数
rem(25,4)
ans=1
exp(x)
计算ex,其中e是自然对数的底
exp
(1)
ans=2.7183
log(x)
计算ln(x),它是x的自然对数(底为e)
log(2.7183)
ans=1.0000
log10(x)
计算lg(x),x是常用对数(底为10)
log10(100)
ans=2
提示
在MATLAN语法中,e的指数表达式与数学中的表达式形式不同。
在数学表达式中e的3次方表示为e3,在MATLAB中表示为exp(3),数值5e3表示5*103。
表3.2取整函数
round(x)
对x四舍五入
round(3.7)
ans=4
fix(x)
对x向零点取整
fix(-8.8)
ans=-8
fix(8.8)
ans=8
floor(x)
对x负向取整
floor(8.8)
ceil(x)
对x正向取整
ceil(-8.8)
表3.3离散数学中的函数
factor(x)
对x进行因式分解
factorization
factor(12)
ans=
223
gcd(x,y)
找出x和y的最大公因数
greatestcommondivisor
gcd(10,15)
ans=5
lcm(x,y)
找出x和y的最小公倍数
lowestcommonmultiple
lcm(10,15)
ans=30
rats(x)
用分数表示
fractionalnumber
rats(1.5)
ans=3/2
factorial(x)
计算x的阶乘
factorial
factorial(4)
ans=24
nchoosek(n,k)
Cnk,即从n中选择k的组合数
nchoosek(4,2)
ans=6
primes(x)
找出<
x的素数
primes(10)
2357
isprime(x)
判断x是不是素数。
若x是素数,返回1;
否则返回0。
isprime(10)
ans=0
表3.4三角函数
sin(x)
x用弧度表示
sin(3.14/2)
cos(x)
cos(3.1415926/2)
ans=2.6795e-008
tan(x)
tan(pi/4)
ans=1.0000
asin(x)
x的取值区间为[-1,1],求x的反正弦值,返回值在[-pi/2,pi/2]区间内
asin
(1)
ans=1.5708
sinh(x)
x用弧度表示,计算x的双曲正弦值
sinh(pi)
ans=11.5487
asinh(x)
计算x的反双曲正弦值
asinh(11.5487)
ans=3.1416
sind(x)
x用角度表示
sind(90)
asind(x)
计算反正弦,结果用角度表示
asind
(1)
ans=90
表3.5最大值和最小值
max(x)
maximum
求出矢量的最大值。
一维矢量返回最大值;
二维矢量返回每列最大值组成的行矢量。
x=[1,5,3];
max(x)ans=5
x=[1,5,3;
2,4,4];
ans=254
[a,b]=max(x)
求矢量x中元素的最大值和最大值的位置,函数中a表示最大值,b表示最大值的位置。
若x是二维矢量,返回两个行矢量,第一行矢量表示每列的最大值,第二行矢量表示每列最大值的位置。
a=5b=2
a=254
b=212
max(x,y)
矩阵x和y具有相同的行和列,用两个矩阵中相同位置元素的最大值创建一个新的矩阵。
x=[1,3,5;
9,10,11];
y=[2,4,6;
4,6,8];
ans=246
91011
min(x)
[a,b]=min(x)
min(x,y)
表3.6平均
mean(x)
求矢量x的平均值。
当x为矩阵时,返回值是含有各列平均值的行矢量。
mean(x)
x=[1,2,3;
4,5,6;
7,8,9]
ans=456
median(x)
求矢量x的中间值。
当x为矩阵时,返回值是含有各列中间值的行矢量。
x=[1,6,9;
4,5,2;
7,8,3];
ans=463
mode(x)
求数组的众数
4,2,7;
4,5,3];
ans=423
表3.7求积与乘积
sum(x)
求矢量x各元素之和。
若x是矩阵,返回结果是包含各列元素之和的行矢量。
sum(x)
ans=9
2,6,4];
ans=3117
prod(x)
求矢量x元素的乘积。
若x是二维矩阵,则返回包含各列元素乘积的行矢量。
x=[2,3,4];
prod(x)
x=[2,3,4;
5,6,7];
ans=101828
cumsum(x)
求x元素的累加和。
若x是矩阵,计算矩阵各列元素的累加和。
x=[1,2,4];
cumsum(x)
ans=137
4,5,6];
ans=123
579
cumprod(x)
求x的累积。
若x是矩阵,计算矩阵x各列元素的累积。
cumprod(x)
ans=2624
41018
表3.8排序函数
sort(x)
对矢量x按升序排序。
若x是矩阵,则按列进行升序排列。
sort(x)
ans=135
x=[1,6;
4,5;
2,9];
ans=15
26
49
sort(x,’descend’)
各列按降序排序
sortrows(x)
以矩阵第一列数据为标准,升序排序矩阵的各行。
x=[3,1,3;
1,9,3;
4,3,6];
193
313
436
sortrows(x,n)
以矩阵第n列的数据为标准,按升序排序矩阵的各行。
若n为负数,则按降序排序。
如果没有指定n的值,则以第一列为标准,按升序行排序。
sortrows(x,2)
表3.9规模函数
size(x)
求矩阵x的行数和列数。
若x为多维数组,则size用来求数组的维数和长度。
1,9,3];
size(x)
ans=23
[a,b]=size(x)
确定矩阵x的行数和列数,a表示行数,b表示列数。
a=2b=3
length(x)
确定矩阵x的最大长度
length(x)
表3.10统计函数
std(x)
计算矢量x的标准差。
若x是二维矩阵,则返回包含各列元素标准差的行矢量。
std(x)
1,4,9;
3,6,9];
ans=1.15472.00003.4641
var(x)
计算矢量x的方差。
若x是二维矩阵,则返回包含各列元素方差的行矢量。
var(x)
3,6,9];
ans=1.33334.000012.0000
利用冒号运算符可以把二维矩阵转换成一维矩阵。
A=A(:
)
表3.11随机数产生函数
rand(n)
产生一个0到1区间内的n*n的均匀随机数矩阵
rand
(2)
ans=
0.81470.1270
0.90580.9134
rand(m,n)
产生一个0到1区间内的m*n的均匀随机矩阵
rand(3,2)
0.63240.5469
0.09750.9575
0.27850.9649
randn(n)
产生一个均值为0,方差为1的n*n的高斯随机数矩阵
randn
(2)
-0.43260.1253
-1.66560.2877
randn(m,n)
产生一个均值为0,方差为1的m*n的高斯随机数矩阵
randn(3,2)
-1.1465-0.0376
1.19090.3273
1.18920.1746
表3.12复数函数
计算复数的模。
在极坐标系中,复数的模=半径。
x=3+4i;
abs(x)
angle(x)
当复数用极坐标表示时,就散半径与水平方向的夹角,用弧度表示。
angle(x)
ans=0.9273
complex(x,y)
创建一个实部为x,虚部为y的复数
x=3;
y=4;
complex(x,y)
ans=3.0000+4.0000i
real(x)
求复数的实部
x=3+4i;
real(x)
imag(x)
求复数的虚部
imag(x)
isreal(x)
判断数组是