matlab常⽤函数(数学建模-复习)
常⽤函数
randperm --> 类似于python中的shuffle
isempty --> 判断向量或者矩阵的是否为空(⾥⾯没有任何内容)
参数1: vec 或者 matrix
返回值:
1: 表⽰为空
0: 表⽰不为空
exist --> 判断变量是否存在
直接上⽰例
exist('example', 'var'): 判断example这个变量是否存在,注意第⼆个参数不是乱写的,'var'表⽰变量注意:
在matlab中peaks函数就使⽤了这个函数,所有我们可以直接调⽤peaks,⽽不需要传递参数image 与 imagesc 函数 --> 显⽰⼀个图⽚,但是会⾃动的缩放尺⼨
参数1: 像素矩阵
返回值:
Image 结构体
colormap 函数 --> 创建出⼀个figure,并且根据传⼊的参数来绘制对应的图⽚类型(rgb, grayscale)参数1:
可以是gray, hot, jet中的其中⼀个,默认是jet
注意:
如果当前已经有了⼀个figure,则使⽤colormap会改变当前图⽚的维度(类型),⼀般是将RGB转为gray,使⽤
colormap(gray)
axis image off --> 不显⽰坐标轴
meshgrid --> 返回⽹格矩阵
参数1: X
可选参数:
Y
返回⽹格矩阵,下⾯通过例⼦,⾃⼰意会吧
x = [1 2 3];
y = [1 2 3];
[xx, yy] = meshgrid(x, y)
xx =
1 2 3
1 2 3
1 2 3
yy =
1 1 1
2 2 2
3 3 3
xx1 = meshgrid(x)
xx1 =
1 2 3
1 2 3
1 2 3
peaks 返回⼭顶数据X,Y,Z
使⽤: [X, Y, Z] = peaks;
contour 函数 --> 画等⾼线 --> 如果要画封闭的曲线的,要联想到等⾼线,使⽤matlab中的contour函数进⾏绘制参数1: X
参数2: Y
参数3: Z
可选参数:
number: 数字类型,表⽰显⽰的等⾼线的个数
range: [a, b], 表⽰只画出Z的值在[a, b]之间的等⾼线
'ShowText', 'on': 在等⾼线上显⽰对应的Z的值,可以与range⼀起使⽤,帮助理解使⽤:
surf(X, Y, Z, [0, 1], 'ShowText', 'on');
type 指令 --> 列出函数的源码
surf 函数 --> 画出3D图
参数1: X
参数2: Y
参数3: Z
xlim 和 ylim --> 设置图像中的x和y的定义域和值域
参数1: start
参数2: end
额外:
axes函数
numel 函数 --> 返回向量或者矩阵中所有元素的个数
参数1: matrix
返回值:
返回向量或者矩阵中所有元素的个数
logpace 函数 --> 返回⾏向量
参数1: a
参数2: b
参数3: n
返回值:
返回⼀个在[\(10^{a}\), \(10^{b}\)]之间有n个元素的⾏向量linspace 函数 --> 返回⾏向量linspace函数python
参数1: a
参数2: b
参数3: n
返回值:
返回⼀个在[a, b]之间有n个元素的⾏向量
spline 函数 --> 返回⼀个⾮矩阵形式的三阶样条的函数
参数1: x
参数2: y
返回值:
返回⼀个⾮矩阵形式的三阶样条的函数
注意:
获取返回值之后, 紧接着调⽤ppval(p, x)函数计算出函数结果ppval 函数 --> 计算出多项式的结果
参数1: p -> ⾮矩阵形式的函数
参数2: x向量的值
返回值:
返回结果
poly2sym 函数 -> 将系数多项式转为符号多项式
参数1: ⼀个系数多项式的向量
返回值:
⼀个符号多项式
conv 函数 -> 多项式乘法
参数1: 第⼀个多项式向量
参数2: 第⼆个多项式向量
返回值:
返回参数1和参数2进⾏多项式乘法之后得到的多项式的结果max 函数 -> 计算出最⼤值
参数1: 需要计算的矩阵
参数2: 为[], 好像是⼀个表⽰位, 如果不写第⼆个参数则返回的就是⼀个向量, 但是如果写了[], 则还会返回⼀个最⼤值在原来的矩阵中对应的下标
参数3: 1表⽰查列中最⼤值, 2表⽰查⾏中最⼤值
返回值:
如果第⼆个参数为[], 返回两个向量
如果没有第⼆个参数, 返回的是⼀个向量
建议:
有时候忽略第⼆个参数会有问题, 尽量使⽤上第2个参数
min函数和max⼀样
reshape函数 -> 返回⼀个reshape后的矩阵
参数1: 需要reshape的矩阵
参数2: reshape成⼏⾏
参数3: reshape成⼏列, 如果为[]则会根据参数2⾃动计算出列数, 如果我们划分的⾏和列不合理就会报错
返回值
⼀个reshape后的矩阵
注意:
reshape函数在划分的时候是按照列的⽅向划分出⼀⾏的
⽰例:
⽣成[2, 1, 4, 3...]向量
reshape([2:2:100; 1:2:100], 1, [])
多项式拟合函数
polyfit 函数 -> 返回拟合的多项式 -> 类似于 [3, 2, 1] (注意: 多项式在matlab中是以数组的⽅式存储的, 其中x变量的阶数就是下标, 所以返回的多项式是将降幂的)
参数1: x为横坐标
参数2: y为纵坐标
参数3: n为拟合出来的多项式的最⾼阶数
例⼦: 拟合出来的是 y = 2n^2 + 3n + 1, 观察到幂数是从⾼到低排序的
则n就是2
返回值:
+ p: 各个阶数的系数, 返回的是⼀个⾏vector
polyval 函数
参数1: 多项式 -> [3, 2, 1] -> 3x^2 + 2x + 1
参数2: 输⼊的值, 可以为向量[1, 2, 3]也可以是矩阵
返回值:
将参数2代⼊参数1表⽰的多项式返回的结果
最⼤回撤率函数
maxdrawdown 函数
参数1: 向量(⼀维的)
返回值:
+ 最⼤回撤率 -> 就是风险率
读取⽂件
xlsread()
参数1: filename
参数2: sheet
参数3: xlRange
返回值:
+ 数据
xlswrite()
参数1: filename
参数2: a variable
参数3: sheet
参数4: xlRange
save():
⽰例:
save(filename, a_variable, '-ascii'), 注意: 最好只保存⼀个变量这样在读取的时候⽅便
其中a_variable要使⽤引号包含起来
load():
⽰例:
a = load(filename, 'acsii'), filename的数据要维度⼀样
textread(), 读⼊的精度好:
参数1: filename
参数2: format --> '%s %s %f %d'
参数3: number_of_lines_to_read
参数4: 'headerlines'
参数5: where_is_the_headerline, will begin to read the next line
返回值:
返回值的个数要与format中的%的格式数量对应
fprintf(), 写出的精度好
参数1: filename_fid
参数2: fmt, 以空格分开
⽂件读取三步骤
1. fid = fopen(filename, 'r')
2. var = fread(fid, '* char'), 读取所有的字符
3. var = native2unicode(var), 转为unicode
4. fclose(fid)
⽬录函数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论