一、什么是MATLAB?
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂。它是Mathworks公司出品的商业数学软件,主要用于算法开发、数据可视化、数据分析以及数值计算。使用MATLAB作为计算工具,人们不需关注各种数值计算方法的具体细节和计算公式,也不需要繁琐的底层编程,从而可以专注于实际问题的分析和设计,大大提高工作效率和质量,为科学研究与工程应用提供重要手段。
二、MATLAB可以做什么?
1.数学运算
MATLAB中的数学公式输入方式与C/C++中相似,十分容易上手。
下面以计算为例:
>> y = (2*sin(0.3*pi))/(1+sqrt(5)) y = 0.5000
2.数据分析
MATLAB提供了大量实用绘图函数,可以方便地将数据绘制为直观的图像。绘制数据以便确定模式和趋势,更全面地描述数据趋势,以便预测新数据值。
图片来自MATLAB官方手册
3.数字图像处理
MATLAB的绘图模块中还包含许多实用的数字图像处理函数,与其强大的数据分析能力结合,可以高效地对数字图像进行处理。特别地,MATLAB在遥感影像处理方面具有非常亮眼的表现。
原始遥感影像
处理结果 原文链接:https://blog.csdn.net/themingyi/article/details/84842473
原始古琴谱图像
降噪后图像
4.MATLAB APP
MATLAB图形用户界面(GUI)是一种包含多种对象的图形窗口 ,通过GUIDE集成开发环境可以 将菜单、对话框及各种控件都集成实现。GUI不仅使用户操作统一,而且方便编程实现。
MathWorks官网-基于数值输入计算和绘制数据的APP
5.深度学习
MATLAB工具箱提供了深度学习网络的创建方法,在计算机视觉、图像处理、自动驾驶、信号处理、音频处理等领域有广泛的应用。
MathWorks官网-使用深度学习进行语义分割
三、MATLAB 2019a基本介绍
MATLAB 2019a 界面默认布局
1.桌面基础知识
当前文件夹(Current Folder):可以访问当前路径下的文件
命令行窗口(Command Window):在命令行中输入命令
工作区(Workspace):显示已创建或者从其他文件导入的数据
脚本(Script):包含一系列命令和函数调用,不接受输入参数或返回输出参数。它们处理工作区中的数据。脚本是一个包含多行连续 MATLAB 命令和函数调用的扩展名为 .m 的文件。在命令行中键入脚本名称即可运行该脚本。
函数(Function):可接受输入参数,并返回输出参数。函数的第一行以关键字 function 开头。它提供函数名称和参数顺序。在函数内创建的任何变量都存储在特定于该函数的工作区内,该工作区独立于基础工作区。程序文件可以包含多个函数,第一个函数是主函数,后面的函数称为局部函数。
2.矩阵和数组
MATLAB 是“matrix laboratory”的缩写形式。MATLAB® 主要用于处理整个的矩阵和数组,而其他编程语言大多逐个处理数值。
所有 MATLAB 变量都是多维数组,与数据类型无关。矩阵是指通常用来进行线性代数运算的二维数组。
创建数组,使用逗号 (,
) 或空格分隔各元素。
a = [1 2 3 4]
创建包含多行的矩阵,使用分号分隔各行。
a = [1 2 3; 4 5 6; 7 8 10]
要执行元素级乘法(而非矩阵乘法),使用 .*
运算符:
p = a.*a
乘法、除法和幂的矩阵运算符分别具有执行元素级运算的对应数组运算符。
3.二维和三维图
创建二维线图,使用 plot
函数可以十分方便地做到。我们可以发现代码语义明确,绘制效果规范美观。
x = 0:pi/100:2*pi; y = sin(x); y2 = sin(x-.25); y3 = sin(x-.5); plot(x,y,x,y2,x,y3)%MATLAB中分号";"是选用的 legend(\'sin(x)\',\'sin(x-.25)\',\'sin(x-.5)\')%标识各条线 xlabel(\'x\')%x轴标签 ylabel(\'sin(x)\')%y轴标签 title(\'Sine函数图像\')%标题
用surf函数可以创建三维图,同样代码语义明确,绘制效果规范美观。
[X,Y] = meshgrid(-2:.2:2); Z = X .* exp(-X.^2 - Y.^2); surf(X,Y,Z)
二维图绘制结果
三维图绘制结果
4.数字图像处理
MATLAB拥有读写图像文件、图像的显示、 图像的变换、模拟噪声生成函数和预定义滤波器、图像的增强等功能的函数,可以对数字图像进行高效的处理,与深度学习结合可以进行图像识别。
下面是一个简单的图像显示的例子:
image = imread(\'geyou.jpg\');%读取文件 [m,n,p] = size(image); im1 = zeros(m,n,p); im1(:,:,1) = image(:,:,1);%红色 im1 = uint8(im1); im2 = zeros(m,n,p); im2(:,:,2) = image(:,:,2);%绿色 im2 = uint8(im2); im3 = zeros(m,n,p); im3(:,:,3) = image(:,:,3);%蓝色 im3 = uint8(im3); output = [im1,im2(:,end:-1:1,:),im3];%拼接 imshow(output)
原始图片
拼接显示的图片
四、简单的SEIR模型
B站上有个up主用MATLAB构建了新冠肺炎的预测模型。好!用刚刚学到的知识跟着做一下吧!
https://www.bilibili.com/video/av85508117
请发表评论