matlab 常用函数(数学建模-复习)
常用函数
- fscanf(fid, '%c', inf) -> 直接读取整个文件, 因为inf表示无穷 
- strtrim 
- char(num): 将num转为ASCII字符 
- strtok(content, delimiters) 
- regexprep(content, pattern, replacement): 正则表达式匹配并替换成指定的字符 
- lower: 小写字符 
- cumsum: 求紧邻累加和序列 
- eval: 将sym符号转换为数值 
- syms: 定义符号变量 
- dsolve: 求解常微分方程, 求出符合条件的一个函数 
- solve: 求解方程组, 可以偷懒了:-) 
- matlab中的''和""是不一样的, 建议以后使用"", 因为s = ["hello", "world"]和['hello', 'world']返回的结果是不一样 
- linprog -> 使用单纯形法计算出最小的最优解 - 参数1: 目标函数的系数列向量 
- 参数2: 约束条件的系数矩阵 
- 参数3: 约束条件的值 
- 注意: 单纯形法使用求解最大的最优解的, 但是在MATLAB中只提供了linprog用来求最小最优解的, 所以在列出了单纯形法的形式之后, 在传入第一个参数的使用取反即可 
- 使用示例: 
 z = [25; 30];
 A = [20 30; 5 4];
 b = [690; 120];
 [x\_1, x\_2] = linprog(-z, A, b);
 
 
- 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 函数 --> 返回行向量 - 参数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, [])
 
 
- 生成[2, 1, 4, 3...]向量
 
多项式拟合函数
- 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, 以空格分开
 
文件读取三步骤
- fid = fopen(filename, 'r')
- var = fread(fid, '* char'), 读取所有的字符
- var = native2unicode(var), 转为unicode
- fclose(fid)
目录函数
- dir() - 参数1: 目录名
- 返回值
- 一个struct array结构体, 属性有name, folder, isdir, datef, bytes
 
 
- fullfile() - 参数1: 目录名, 不能以/结尾 
- 参数2: 可以是文件或者目录 
- 返回值: 返回添加了/的目录路径的字符串 
 
显示图片
- imread() - 参数1: filename 
- 参数2: fmt 
- 返回值: 相应图片类型的维度, bmp为二维的, jpeg为三维的 
 
- imshow() - 参数1: 矩阵
- 参数2: 矩阵中的值域(用来控制对比度)
 
读取视频
- videoFReader = vision.VideoReader('my.mp4'); % 保存了视频帧, 一堆又一堆的矩阵
- videoPlayer = vision.VideoPlayer(); % 用来显示一个帧
- while ~IsDone(videoFReader) % isDone函数用来判断是否到了end了
- currentFrame = step(videoFReader); % 获取Reader中保存的一个帧, 栈会一步一步的走下去, 如果不需要将帧指针返回到初始位置, 则使用reset(videoFReader);
 
- step(videoPlayer, currentFrame); % 播放一个帧
 
- end
- release(videoPlayer); % 释放videoPlayer, 为下一次play做准备
读取视频2(这是player的位置)
- r = groot, % groot就是屏幕, r.ScreenSize返回的是[1, 1, 1400, 900]返回的是左下角和右上角 
- videoFReader = vision.VideoReader('my.mp4'); % 保存了视频帧, 一堆又一堆的矩阵 
- videoPlayer = vision.VideoPlayer('Position', [1, 1, 1400, 900]); % 用来显示一个帧 
- while ~IsDone(videoFReader) % isDone函数用来判断是否到了end了 
- currentFrame = step(videoFReader); % 获取Reader中保存的一个帧, 栈会一步一步的走下去, 如果不需要将帧指针返回到初始位置, 则使用reset(videoFReader);
 
- step(videoPlayer, currentFrame); % 播放一个帧
 
- end 
- release(videoPlayer); % 释放videoPlayer, 为下一次play做准备 - ---恢复内容结束--- - ### 常用函数 
- 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 函数 --> 返回行向量 - 参数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, [])
 
 
- 生成[2, 1, 4, 3...]向量
 
多项式拟合函数
- 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, 以空格分开
 
文件读取三步骤
- fid = fopen(filename, 'r')
- var = fread(fid, '* char'), 读取所有的字符
- var = native2unicode(var), 转为unicode
- fclose(fid)
目录函数
- dir() - 参数1: 目录名
- 返回值
- 一个struct array结构体, 属性有name, folder, isdir, datef, bytes
 
 
- fullfile() - 参数1: 目录名, 不能以/结尾 
- 参数2: 可以是文件或者目录 
- 返回值: 返回添加了/的目录路径的字符串 
 
显示图片
- imread() - 参数1: filename 
- 参数2: fmt 
- 返回值: 相应图片类型的维度, bmp为二维的, jpeg为三维的 
 
- imshow() --> 尽量原样输出原始图片 - 参数1: 矩阵
- 参数2: 矩阵中的值域(用来控制对比度)
 
读取视频
- videoFReader = vision.VideoReader('my.mp4'); % 保存了视频帧, 一堆又一堆的矩阵
- videoPlayer = vision.VideoPlayer(); % 用来显示一个帧
- while ~IsDone(videoFReader) % isDone函数用来判断是否到了end了
- currentFrame = step(videoFReader); % 获取Reader中保存的一个帧, 栈会一步一步的走下去, 如果不需要将帧指针返回到初始位置, 则使用reset(videoFReader);
 
- step(videoPlayer, currentFrame); % 播放一个帧
 
- end
- release(videoPlayer); % 释放videoPlayer, 为下一次play做准备
读取视频2(这是player的位置)
- r = groot, % groot就是屏幕, r.ScreenSize返回的是[1, 1, 1400, 900]返回的是左下角和右上角
- videoFReader = vision.VideoReader('my.mp4'); % 保存了视频帧, 一堆又一堆的矩阵
- videoPlayer = vision.VideoPlayer('Position', [1, 1, 1400, 900]); % 用来显示一个帧
- while ~IsDone(videoFReader) % isDone函数用来判断是否到了end了
- currentFrame = step(videoFReader); % 获取Reader中保存的一个帧, 栈会一步一步的走下去, 如果不需要将帧指针返回到初始位置, 则使用reset(videoFReader);
 
- step(videoPlayer, currentFrame); % 播放一个帧
 
- end
- release(videoPlayer); % 释放videoPlayer, 为下一次play做准备
matlab 常用函数(数学建模-复习)的更多相关文章
- matlab 常用函数
		Matlab常用函数 Matlab的内部常数 eps 浮点相对精度 pi 圆周率 exp 自然对数的底数e i 或j 虚数单位 Inf或 inf 无穷大 Matlab概率密度函数 ... 
- (转载)delphi 常用函数(数学)
		delphi 常用函数(数学) Delphi中怎么将实数取整? floor 和 ceil 是 math unit 里的函数,使用前要先 Uses Math.trunc 和 round 是 system ... 
- Delphi 常用函数(数学函数)round、trunc、ceil和floor
		源:Delphi 常用函数(数学函数)round.trunc.ceil和floor Delphi 常用函数(数学) Delphi中怎么将实数取整? floor 和 ceil 是 math unit 里 ... 
- php常用函数——数学函数
		php常用函数——数学函数 
- MATLAB常用函数, 常见问题
		MATLAB常用函数 1.常用取整函数 round(x):四舍五入函数 floor(x) : 向下取整, 即 floor(1.2)=1, floor(1.8) = 1 ceil(x) : 向上取整, ... 
- Matlab常用函数集锦
		ndims(A)返回A的维数size(A)返回A各个维的最大元素个数length(A)返回max(size(A))[m,n]=size(A)如果A是二维数组,返回行数和列数nnz(A)返回A中非0元素 ... 
- MATLAB常用函数
		Matlab的内部常数 pi 圆周率 exp(1) 自然对数的底数e i 或j 虚数单位 Inf或 inf ... 
- MySql常用函数数学函数、加密函数等(转—收藏)
		MySql函数众多,这里只是列举了一部分常用的函数. 一.数学函数 ABS(x) // 返回x的绝对值 BI ... 
- matlab 常用函数汇总
		1. 特殊变量与常数 主题词 意义 主题词 意义 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 inputname 输入参数名 Na ... 
随机推荐
- rufus-scheduler定时任务示例代码
			require 'rubygems' require 'rufus/scheduler' scheduler = Rufus::Scheduler.start_new scheduler.in '20 ... 
- ORACLE AWR报告生成步骤
			ORACLE AWR报告生成步骤 (以PL/SQL中命令窗口为例) 1.sqlplus或plsql的commod窗口(命令窗口)运行命令 @D:\oracle\product\10.2.0\db_1\ ... 
- 使用python已知平均数求随机数
			问题描述:产生40个数,范围是363-429之间,平均值为402 思路: 1 产生一个随机数 2 使用平均数减去随机数求出第二个数,生成20组 3 将排序打乱 # -*- coding: cp936 ... 
- 8. CTF综合靶机渗透(一)
			靶机说明 虚拟机难度中等,使用ubuntu(32位),其他软件包有: PHP apache MySQL 目标 Boot to root:从Web应用程序进入虚拟机,并获得root权限. 运行环境 靶机 ... 
- c++中字符串的截取:
			c++中字符串的截取: string 类提供字符串处理函数,利用这些函数,程序员可以在字符串内查找字符,提取连续字符序列(称为子串),以及在字符串中删除和添加.我们将介绍一些主要函数. 1.函数fin ... 
- JavaScript高级程序设计学习笔记--面向对象的程序设计(二)-- 继承
			相关文章: 面向对象的程序设计(一) — 创建对象 http://www.cnblogs.com/blackwood/archive/2013/04/24/3039523.html 继承 继承是OO语 ... 
- 第一个Python工程
			创建你的第一个Python程序 如果你曾经很熟悉visual studio的工作方式.可能对python不习惯. 工程通常只与你使用的IDLE有关系.这些工具习惯将文档,编译,测试集成一体.所以就存在 ... 
- .net core关于跨域及Cookie的部分问题
			一.如何跨域 1.情景描述 目前有A站点和B站点.A站点有一个API接口为UserData接口,B站点希望可以通过ajax请求来获取A站点该接口数据. 2.后端修改 首先在ConfigureServi ... 
- The Little Prince
			Chapter 1 That is why, at the age of six, I gave up what might have been a magnificant career as a p ... 
- 商派OMS增加PMC跟生产中心角色权限思路
			一.目标:根据现有的商派OMS框架逻辑二开 PMC中(外协单位.生产中心)角色权限(如:下图的仓库角色,根据[接单元.发货员.仓库管理员],选择一或多的版权仓库,同理,如外协单位根据[**.** .* ... 
