许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Matlab常用函数大全(数学建模复习必备)

Matlab常用函数大全(数学建模复习必备)

阅读数 13
点赞 0
article_banner

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 函数 --> 显示一个图片,但是会自动的缩放尺寸
         
  • 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 函数 --> 返回行向量
         
  • linspace 函数 --> 返回行向量
         
  • spline 函数 --> 返回一个非矩阵形式的三阶样条的函数
         
  • ppval 函数 --> 计算出多项式的结果
         
  • poly2sym 函数 -> 将系数多项式转为符号多项式
         
  • conv 函数 -> 多项式乘法
         
  • max 函数 -> 计算出最大值
         
  • min函数和max一样
  • reshape函数 -> 返回一个reshape后的矩阵
         

多项式拟合函数

  • polyfit 函数 -> 返回拟合的多项式 -> 类似于 [3, 2, 1] (注意: 多项式在matlab中是以数组的方式存储的, 其中x变量的阶数就是下标, 所以返回的多项式是将降幂的)
         
  • polyval 函数
         

最大回撤率函数

  • maxdrawdown 函数 参数1: 向量(一维的) 返回值: + 最大回撤率 -> 就是风险率

读取文件

  • xlsread()
         
  • xlswrite()
         
  • save():
         
  • load():
         
  • textread(), 读入的精度好:
         
  • fprintf(), 写出的精度好
         

文件读取三步骤

  1. fid = fopen(filename, 'r')
  2. var = fread(fid, '* char'), 读取所有的字符
  3. var = native2unicode(var), 转为unicode
  4. fclose(fid)
目录函数
  • dir()
         
  • fullfile()
         

显示图片

  • imread()
         
  • imshow()
         

读取视频

  • 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
  • ### 常用函数
         
  • xlim 和 ylim --> 设置图像中的x和y的定义域和值域 参数1: start 参数2: end 额外: axes函数
  • numel 函数 --> 返回向量或者矩阵中所有元素的个数 参数1: matrix 返回值: 返回向量或者矩阵中所有元素的个数
  • logpace 函数 --> 返回行向量
         
  • linspace 函数 --> 返回行向量
         
  • spline 函数 --> 返回一个非矩阵形式的三阶样条的函数
         
  • ppval 函数 --> 计算出多项式的结果
         
  • poly2sym 函数 -> 将系数多项式转为符号多项式
         
  • conv 函数 -> 多项式乘法
         
  • max 函数 -> 计算出最大值
         
  • min函数和max一样
  • reshape函数 -> 返回一个reshape后的矩阵
         

多项式拟合函数

  • polyfit 函数 -> 返回拟合的多项式 -> 类似于 [3, 2, 1] (注意: 多项式在matlab中是以数组的方式存储的, 其中x变量的阶数就是下标, 所以返回的多项式是将降幂的)
         
  • polyval 函数
         

最大回撤率函数

  • maxdrawdown 函数 参数1: 向量(一维的) 返回值: + 最大回撤率 -> 就是风险率

读取文件

  • xlsread()
         
  • xlswrite()
         
  • save():
         
  • load():
         
  • textread(), 读入的精度好:
         
  • fprintf(), 写出的精度好

文件读取三步骤

  1. fid = fopen(filename, 'r')
  2. var = fread(fid, '* char'), 读取所有的字符
  3. var = native2unicode(var), 转为unicode
  4. fclose(fid)
目录函数
  • dir()
         
  • fullfile()
         

显示图片

  • imread()
         
  • imshow() --> 尽量原样输出原始图片
         

读取视频

  • 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做准备
  • 免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空