MATLAB从入门到算法实践

2023-05-16

九月份就要参加数学建模比赛,所以暑假要好好准备。为了国赛接触MATLAB。

MATLAB的优点:
1、 函数多,工具箱全 功能全
2、 人性化,且在不断改进 推荐使用最新的版本
3、 集成度高、文档完善 更加人性化
4、 上手快,表达方式更符合数学模式 Matlab下标从1开始,似伪代码 5、 代码开发时间短 Matlab集成度高

任何编程语言有优势也有不足的地方

MATLAB的缺点

1、 速度慢 解释型语言,和c语言速度不相上下,少用循环,多用向量化
2、 版权 闭源

数学建模可以提高创新能力、解决问题能力和提高见识
学习MATLAB可以解决实际问题,加深对数学工具的理解能力的培养

一、 应用场景

MATLAB代码实现,SIMULINK模块化实现
有很多接口方便语言之间交流
应用场景

  • 技术计算。数学计算、分析、可视化和算法开发
  • 控制系统设计。控制系统基于模型的设计,包括嵌入式系统
  • 仿真、快速原型及代码生成等
  • 信号处理和通信。信号处理和通信系统基于模型的设计,包
  • 括仿真、代码生成和验证等
  • 图像处理。图像采集、分析、可视化和算法开发
  • 测试和测量。测试和测量应用中硬件连接性和数据分析
  • 计算生物学。生物数据和系统的分析、可视化与仿真
  • 计算金融。金融建模、分析、交易及应用程序开发
  • 数学建模

二、 功能举例

1 . 数值计算

29*(2+23/3)-5^2%数学公式直接得出结果
 a=1%变量赋值运算
b=2
c=a+b
A = [1 2 3; 4 5 6; 7 8 10] 矩阵,基本运算单元
 rng(0)    %设置随机种子,便于读者验证
 A = ones(2, 5) * 6    % 元素全部为6的2*5矩阵
 B = rand(3, 5)
 C = [A; B]     % 数组合并
format long  % 长格式显示
format short  % 短格式显示

2 . 矩阵和数组操作
数组计算是指两个数组之间相对应元素之间计算
矩阵计算是指线性代数的规则计算

 A=[1 2;3 4];  % 测试矩阵A
B=[4 3;2 1];  % 测试矩阵B
r1=100+A % 矩阵A加上一个常数
r2_1=A*B % 两个矩阵相乘,矩阵乘法
r2_2=A.*B % 两个矩阵相乘,数组乘法

3 . 稀疏矩阵

B = bucky;

bucky

spy(B)
D=full(B)
A=reshape(1:18,2,3,3)  % 三维数组

4.逻辑型

M=magic(4) sum(M)%每一列的和相等
M>6 %大于6的元素
a='matlab'%字符串

5.结构数组
结构数组

employee.name='henry';
employee.sex='male'
employee.age=25;
employee.number=12345;
%也可定义二维数组
employee(2).name='lee';
employee(2).sex='female';
employee(2).age=23;
employee(2).number=98765;
employee(2)

6.元胞数组
元胞数组
下标通过数字编号可循环,元素里面是数据类型。
7.日期和时间

t = datetime(2017,6,28,6:7,0,0)
datenum(t)%2014b以前的版本适用
datevec(t)
t=Day = 27:28%修改日期

matlab可以直接导入excel的数据
table属性,可以通过行列显示也可以通过名称
设置快捷方式:clear:内存中清除变量
clc:命令行清除
closeall:绘图窗口关闭
8.差分

rng(0) %设置随机种子
A=randperm(9) %生成随机数列
B = diff(A) %求数列的差分

9.梯度求解

v = -2:0.2:2;
[x,y] = meshgrid(v);
z = x .*exp(-x.^2 - y.^2); %创建测试数据
[px,py] = gradient(z,.2,.2); %求梯度
contour(v,v,z),hold on,quiver(v,v,px,py),hold off %绘制等高线和梯度方向

10.一维差值数组

x=0:10;
y=cos(x);
xi=0:0.25:10;
strmod={'nearest','linear','spline','pchip'} %将差值方法存储到元胞数组
strlb={'(a)method=nearest','(b)method=linear',...
   '(c)method=spline','(d)method=pchip'}%绘图标签
for i=1:4
    yi=interp1(x,y,xi,strmod{i});%插值
    subplot(2,2,i)                       %子图
    plot(x,y,'ro',xi,yi,'b'),xlabel(strlb(i))
end

差值
11.计算拟合

rng(0) %设置随机种子
x=1:1:10;
y=-0.9*x.^2+10*x+rand(1,10).*5;%产生测试数据
plot(x,y,'o')                                  %绘制并标出原始数据点
p=polyfit(x,y,2)
xi=1:0.5:10;
yi=polyval(p,xi);                           %计算拟合的结果
hold on
plot(xi,yi);                                   %绘制拟合结果图
hold off

拟合
12.关于误差
a=0
for n=1:10000
a=a+0.1; % 0.1以二进制存储会有截断误差
end
13.可视化
14.概率分布
15.数据I/O
16.优化算法
优化算法
全局化工具箱

  • 穷举
  • Simulink
    17.信号处理
    17.1信号处理基本理论
    17.1.1信号的生成
    17.1.2数字滤波器结构
    17.2 IIR滤波器经典设计
    17.2.1 IIR滤波器直接设计法
    17.2.2 IIR滤波器
    17.2.3 广义巴特沃斯IIR滤波器设计
    17.3 FIR滤波器的MATLAN实现
    17.3.1 FIR滤波器设计
    17.3.2 fir1函数
    17.3.3 fir2函数
    18.1 图像文件的操作
    18.1.1 查询图像文件的信息
    18.1.2 图像文件的读写
    18.1.3 图像文件的显示
    18.1.4 图像格式的转换
    18.2 图像的几何运算
    18.2.1 图像的平移
    18.2.2 图像的镜像变换
    18.2.3 图像缩放
    18.2.4 图像的旋转
    18.2.5 图像的剪切
    18.3 图像的正交变换
    18.3.1 傅里叶变换
    18.3.2 离散余弦变换
    18.3.3 Radon变换
    18.4 MATLAB图像增强
    18.4.1 像素值及其统计特性
    18.4.2 对比度增强
    18.4.3 直方图均衡化
    18.4.4 空域滤波增强
    18.4.5 频域增强
    19.1 机器学习和神经网络

三、 新版本功能

  • Live Script功能丰富,插入数据种类多,可以同时看到带和和输出结果
  • 没有断点,不能调试
  • Table键可以自动补全

四、 大数据及人工智能

Data Store结合Tall Array数据结构,读取部分文件在深度学习、无人驾驶领域:

  • 数值计算基础知识
  • 可视化操作
  • 脚本/函数编写、调试
  • 概率与统计功能
  • 优化
  • 预测

数学建模

数学模型是用数学描述一些东西,算出一些结果,一个事务,抽象成一个数学事务,就是建模的过程。

一、简介

数学建模不等于数学:数学建模不是纯粹的数字和方程,一解决某个时间问题为目的,经过简化,从中抽象归结出来的数学问题就是该问题的数学模型,这个过程称为数学建模
数学建模用文字、符号、图标、公式、框图等描述客观事物的某些特征和内在联系的模型。

二、应用举例

1.MCM99问题:“非法”聚会
  许多公共设施的房间都标有人数的记号(合法容量),该数目可嘉定是以紧急情况下从房屋出口逃出的人数为基准确定的。
建立数学模型,讨论若干准则决定出房屋的“合法容量”,考虑几种不同的房屋结构。
将模型用于你所在学院(或附近城镇)的公共设施中,如果该类设施已标有“合法”人数的话,请将模型所得结果与之比较

2.MCM03问题:Gamma刀治疗方案

  • 放射外科用单一高剂量射线照射颅内的脑瘤。Gamma刀是一个钴-60源通过盔状物发射出来的并交会于一个点,从而在有效剂量的水平上形成一个近似球形的分布(称为“shot”)。四个盔状物分别具有4、8、14和18mm的射束通道直径。大多数目标体积要用1到15个“shot”加以处理。目标体积通常是一个含数百万个点的3D数字图像。你的任务是用球体填充问题模型来建立最优的Gamma到治疗方案。设计算法必须是相当有效率的

3.ICM2017问题:优化机场安检口旅客通行(排队问题)

  • 建立一个或多个模型,研究旅客通过安检口的流量,确定瓶颈,明确判断当前流程问题区域位置
  • 设计两个或多个对现有系统的潜在改进,提高旅客通信,减少等待时间。模拟这些变化展示改进如何影响流程

4.CUMCM14问题:折叠桌
圆形桌面,桌腿随铰链可摊成平板。桌腿由两组根木条组成,每组由一根钢筋连接,钢筋两端固定于最外侧的两根木条上,沿木条有空槽以保证可滑动

  • 给定平板120cm×50cm×3cm,木条宽2.5cm,钢筋固定在最外侧木条的中心,折叠后桌高53cm。描述折叠过程,给出设计加工参数。
  • 对于任意给定折叠桌高度和圆桌面直径,讨论长方形平板材料和折叠桌的最优(稳固性好,加工方便,用材最少)设计将该参数
  • 根据客户任意设定的折叠桌高度,桌面边缘线的形状大小和桌脚边缘线的大致形状,给出所需平板材料的形状尺寸和最优加工参数。

5.CUMCM16问题:系泊系统的设计
计算风速为12m/s和24m/s时钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域

  • 请调节重物球的质量,使得钢桶的倾斜角度不超过5度,锚链在锚点与海床的夹角不超过16度
  • 水深16-20m,海水速度<1.5m/s,风速<36m/s,请给出考虑风力、水流力和水深情况下的系泊系统设计。

总结

在假期老师的指导下从模型、编程、写作三个方面都有很大的提升,对实践的内容总结如下:
1.数学建模认识、数学模型展示、数学建模能力分析
2.数据处理、预测方法及在竞赛中应用:2003年A题、2004年B题
3.优化类型模型及竞赛案例:2011年B题
4.方差分析、指标权重确定方法:2012年A题、2006年A题
5.离散类算法及其程序设计:2016年A题
6.元胞自动机及在交通模拟中的应用:2013年A题
7.微分方程模型及在竞赛中应用
8.主观评价性问题方法案例:2015年B题、2016年B题
9.参考文献、数据查找方法与技巧
10.竞赛选题与论文写作技巧

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB从入门到算法实践 的相关文章

  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • Deploytool for MATLAB R2013b 不起作用,发生了什么变化?

    多年来我一直在使用集成deploytool为我的同事创建易于分发的 exe 文件 我几天前安装了R2013b 但无法使用deploytool不再了 尝试打包时的日志文件给出了以下内容 ant
  • MATLAB 变量传递和惰性赋值

    我知道在 Matlab 中 当将新变量分配给现有变量时 会进行 惰性 评估 例如 array1 ones 1 1e8 array2 array1 的价值array1不会被复制到array2除非元素array2被修改 由此我推测Matlab中
  • Matlab:2行10列的子图

    如何在 matlab 中绘制 20 幅图像 2 行 10 列 我知道我必须使用 子图 功能 但我对给出的参数感到困惑 我尝试给予 子图 2 10 行索引 列索引 但它似乎不起作用 请帮忙 的前两个参数subplot函数分别给出图中子图的总行
  • 如何从 matlab 调用 Qtproject?

    我在 matlab 中有一个函数可以写入一个 file txt 我在 qt 项目中使用它 So 当我使用 unix 获取要运行的 qt 编译可执行文件时 我有一个 Matlab 文件 但出现错误 代码 unix home matt Desk
  • 考虑预分配速度[重复]

    这个问题在这里已经有答案了 我正在做以下事情 for i 1 m index 0 for j 1 n index index values i j 2 j 1 if j 1 symbol chip chip values index 1 e
  • 霍夫变换检测和删除线

    我想使用霍夫变换检测图像中的线条 但是我不想绘制线条 而是想删除原始图像中检测到的每条线条 image imread image jpg image im2bw image BW edge image canny imshow BW fig
  • 计算给出数组中最小标准差的子集

    让我们有一个大小的向量N 例如 x rand N 1 我想计算长度子集的最小标准差K在向量中 When N and K很小 很容易找到最好的子集 因为我可以使用nchoosek N K 枚举所有可能的子集 但是当值N and K比我们说的要
  • 如何从 Matlab 运行 R 脚本 [重复]

    这个问题在这里已经有答案了 我有 m 文件 我想用它来运行 R 脚本 我怎样才能做到这一点 Matlab文件 caller m some matlab code need to call a R script some matlab cod
  • Matlab下降低图像质量

    问候 我正在尝试找到一种简单的方法来处理图像 以便将其质量从 8 位降低到 3 位 实现这一目标的最简单方法是什么 干杯 如果要线性缩放 只需将每个像素值除以 255 7 即 如果原始图像存储在矩阵 I 中 则让低分辨率图像 J I 255
  • 在 MATLAB 中验证输入的最佳实践

    在验证 MATLAB 函数中的输入时 什么时候使用 inputParser 比使用断言更好 或者还有其他更好的工具可用吗 我个人发现使用 inputParser 不必要地复杂 对于 Matlab 始终需要检查 3 项内容 存在 类型和范围
  • MATLAB 子图标题和轴标签

    我有以下脚本来最终绘制 4 x 2 子图 files getAllFiles preliminaries n size files cases cell 1 n m cell 1 n for i 1 1 n S load files i c
  • 在 Matlab/Java 中将手部运动建模为 3D 曲线

    我只需要一些关于我遇到的问题 在哪里查看等的指导 我在我的一个项目中使用了运动跟踪手套 它返回每个手指和手掌的 X Y 和 Z 值 我想做的是首先根据这些坐标创建每个手指运动的表示 然后将它们每个附加到手掌的运动 以获得手的表示 一旦我完成
  • MATLAB 问题中的 Parfor

    为什么我不能使用parfor在这段代码中 parfor i 1 r for j 1 N r xr j N r i 1 x i r j 1 end end 这是错误 错误 parfor 中的变量 xr 无法分类 请参阅 MATLAB 中的并行
  • matlab中简单正弦波的傅里叶变换

    我尝试显示简单正弦波的频谱 因为我们知道具有固定频率的单个正弦波必须在其频谱中出现峰值我编写了这段代码 但我无法得到这个峰值我的代码中有什么问题 clc nsteps 200 number of signal elements in tim
  • Matlab的uicontrol在Octave中的实现?

    我正在尝试在 Octave 中运行我们实验室中使用的图形程序的 m Matlab 代码 Octave 告诉我代码中使用的函数 uicontrol 没有定义 经过一番搜索 我发现 JHandles 包有一个 uicontrol GUI 功能的
  • 如何从列中创建对称矩阵?

    例如 我想转动以下列 90 175 600 650 655 660 代入矩阵 90 175 600 650 655 660 175 600 650 655 660 655 600 650 655 660 655 650 650 655 66
  • Matlab 错误:()-索引必须出现在索引表达式的最后

    我有这段代码 想要在制表符分隔的 txt 文件中写入一个数组 fid fopen oo txt wt for x 1 length s fprintf fid s t n s x 1 end fclose fid 但我收到此错误 Error
  • 如何调整x轴和y轴的大小

    如何调整 x 轴和 y 轴的大小 我想要什么 更具体 3900 60 30 0 60 120 180 3600 我做了什么 a 0 0 1 10000 plot a 我应该写什么才能按预期调整 x 和 y 轴的大小 EDIT 我不想 390
  • 如何在 MATLAB 中为 4 个子图创建一个通用图例?

    如何在 MATLAB 中为 4 个子图创建一个通用图例 如下所示 又快又脏 hSub subplot 3 1 1 plot 1 1 1 1 1 1 1 1 hLegend legend hello i am legend subplot 3

随机推荐

  • 滴水石穿

    不积跬步 xff0c 无以至千里 xff1b 不积小流 xff0c 无以成江海 1 hashcode相等两个类一定相等吗 equals呢 相反呢 hashcode相等 xff0c 两个类不一定相等 xff1b equals相等 xff0c
  • C++编程——友元

    文章目录 1 友元的概念2 友元的三种实现2 1 全局函数做友元2 2 类做友元2 3 成员函数做友元 1 友元的概念 友元目的是让一个函数或者类访问另一个类中的私有成员 有一个非常生动的例子 xff0c 就是家中会有客厅和卧室 xff0c
  • C++编程——多态

    文章目录 1 多态的基本概念1 1 函数地址早绑定1 2 地址晚绑定 2 多态的原理3 多态的优点与案例3 1 多态的优点3 2 计算器实现案例 4 纯虚函数与抽象类5 虚析构与纯虚析构5 1 虚析构实现5 2 纯虚析构实现 多态的知识结构
  • 自动驾驶常用数据集KITTI使用指南之一——图像雷达数据融合

    对于自动驾驶环境感知算法的初学者而言 xff0c 一辆搭载各类传感器的自动驾驶汽车或者数据采集平台并没有那么重要 xff0c 甚至 xff0c 由于国外早期自动驾驶研究学者的严谨态度 xff0c 一些公开的数据集比自己采集的数据集在同步性
  • 笔试题

    杭州公交云笔试题 输入一个字符串用逗号隔开 xff0c 找出其中最大的连续递增个数 例如 xff1a 1 xff0c 2 xff0c 3 xff0c 1 xff0c 1 xff0c 1 返回3 import java util public
  • C++STL迭代器

    迭代器 1 迭代器 xff1a 类中类 xff0c 通过运算符的重载 xff0c 用类中类的对象遍历容器 2 迭代器分类 xff1a xff08 1 xff09 正向迭代器 xff1a iterator xff08 begin end xf
  • Dockerfile详细解析(四)——环境变量

    环境变量 xff08 Environment replacement xff09 环境变量 xff08 使用 ENV 表达式声明 xff09 也可以被用在某些确定的指令中作为变量被Dockerfile解释出来 Escapes 也被处理为类似
  • STM32 FreeRTOS系列教程(一)FreeRTOS简介

    参考资料 xff1a 正点原子STM32F4 FreeRTOS开发手册 V1 1 野火FreeRTOS 内核实现与应用开发实战 基于STM32 学习RTOS的意义 当我们进入嵌入式这个领域的时候 xff0c 往往首先接触的都是单片机编程 x
  • 关于句柄表的一些文章

    文章链接 1 gt Windows内核情景分析 3 4 1 Windows 进程的句柄表 2 gt Windows 句柄表格式 3 gt Windows句柄表分配算法分析 4 gt 浅谈Windows句柄表 5 gt 句柄啊 3层表啊 Ex
  • 一天实现ros环境搭建和yolov3tiny算法系列(一)之WIN10+Ubuntu20.04的双系统实现

    这几天因为参加无人机比赛 xff0c 我负责算法部分 xff0c 被搭建环境折磨的头都要秃了 xff0c 写这个文章 xff0c 只是想让大家只要按照步骤 xff0c 能够在最短的时间内搭建起环境 xff0c 愿天下没有再被搭建ros 43
  • 容器的老祖宗LXC和Docker的关系

    一 什么是LXC xff1f LXC xff08 Linux Container的缩写 xff09 是一个基于Linux内核的容器虚拟化技术 xff0c 它提供了一种轻量级 快速 简便的方式来创建和管理系统容器 与传统虚拟化技术不同 xff
  • ROS系列教程一:工作空间及功能包创建

    前言 分享一下ROS开发的基础教程 xff0c 全部自己手敲 xff0c 希望能帮到正在学习的你 ROS在WIKI上也有教程 xff0c 个人觉得太过臃肿 xff0c 可以简化点 xff0c 毕竟大家都赶着投胎 xff0c 哈哈哈哈哈 一
  • ROS系列教程二:自定义消息类型话题的发布及订阅

    个人学习记录 本节将结合自定义消息类型 xff08 msg xff09 来介绍一下怎么发布话题消息及订阅话题消息 xff0c 可以让大家更深刻地理解 一 功能包创建 进入上节课创建的my workspace工作目录下的src文件夹 xff0
  • 使用PX4FLOW的pixhawk悬停模式疑难杂症(一)驱动安装以及固件烧写

    最近博主在准备2021电赛的无人机赛题 xff0c 原定于2021 8 4举办的电赛延期 xff0c 对我来说并不是坏消息 xff0c 因为博主从7 26才把零件和pixhawk板子拿到手 xff0c 延期举办给了博主更多时间捣鼓 博主通过
  • 从安装到连接,教你如何连上Mysql数据库

    目录 前言 如何下载Mysql服务 xff1f 需要使用的软件 xff1f 如何连接数据库 xff1f 前言 这篇文章创作目的是为了帮助大家正确的安装mysql数据库以及软件的 xff0c 我会分为两个部分为大家解答 如何下载Mysql服务
  • 使用PX4FLOW的pixhawk悬停模式疑难杂症(二)BAD OPTFLOW HEALTH

    xff08 接上篇 使用PX4FLOW的pixhawk悬停模式疑难杂症 xff08 一 xff09 驱动安装以及固件烧写 xff09 3 博主遇到的第三个问题是 BAD OPTFLOW HEALTH 这个问题也是我在调试过程中遇到的最难的问
  • 使用PX4FLOW的pixhawk悬停模式疑难杂症(三)供电问题

    xff08 接上篇 使用PX4FLOW的pixhawk悬停模式疑难杂症 xff08 二 xff09 BAD OPTFLOW HEALTH xff09 4 博主遇到的最后一个问题是供电问题 这个问题不见得所有人都有 xff0c 但是博主遇到了
  • Nvidia TX2 Ubuntu18.04 安装 IntelRealsense L515 realsense SDK 及 Realsense ROS (make各种问题解答,一篇到位版本)

    前提 xff1a 刷完tx2板子 及 安装完ros 可以参考我这两篇博客 Nvidia JetsonTx2 Ubuntu18 04 安装 ros melodic xff08 顺带快速解决sudo rosdep init问题 xff09 pr
  • Nvidia TX2 使用Intelrealsense L515 并安装 RTABmap建图包编译成功

    前置 xff1a rtabslam需要opencv3 2 0 xff0c 而tx2 ros melodic 自带4 1 1 所以请按照上篇文章完成配置 Nvidia TX2 安装 opencv3 2 0 及在ros melodic下配置op
  • MATLAB从入门到算法实践

    九月份就要参加数学建模比赛 xff0c 所以暑假要好好准备 为了国赛接触MATLAB MATLAB的优点 xff1a 1 函数多 xff0c 工具箱全 功能全 2 人性化 xff0c 且在不断改进 推荐使用最新的版本 3 集成度高 文档完善