Matlab 是一款专门用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括了 Matlab 和 Simulink 两大部分。

本场 Chat,我将带大家快速入门 Matlab,从最基础的桌面基础知识、矩阵和数组到线性代数的基础讲解,一层层地深入 Matlab。

通过本场 Chat,你们将收获:

  1. 线性代数基础知识;
  2. Matlab 的桌面基础知识;
  3. Matlab 在数学领域上的一些应用,包括二维三维图的绘制;
  4. 快速上手并入门 Matlab。

一、为什么选择 MATLAB

MATLAB 是美国 MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 MATLAB 和 Simulink 两大部分。在官网的介绍中,使用 MATLAB 执行深度学习的速度比 TensorFlow 最多快 7 倍,比 Caffe2 最多快 4.5 倍,当然只是告诉咱们它很快,具体有没有,不知道。

本场 chat 的主角是 MATLAB,我使用的版本是 MATLAB R2018a,一开始下载安装的时候,全选了所有产品,结果当然是被下一页的安装大小 18+G 给吓了一跳,毕竟我这小电脑才 256G 的硬盘,勉勉强强容下了这尊大佛,他的安装也是傻瓜式的一直 next。

有一次我的舍友问我,你干嘛全部都装啊,装两个主要的和几个 tool 不就好了,我哑然一笑:“这玩意,你这样装也是要 8+G,要是以后有需要的部分还得麻烦一趟,倒不如全选了。”

一开始学 MATLAB 的目的是很简单的,指导我机器学习的导师给我俩选择 Python 和 MATLAB,因为大多数的机器学习均使用 Python,教程也是容易搜到,有个机会去接触其他语言,还有个老师随时可以询问,倒也乐得其所。

不得不说,MATLAB 的数学建模真的是让我仿佛置身在万千个函数中无法自拔,实在是太惊艳了!

这就是数学之美吧,往圣先辈苦心孤诣地发现那么多美好的公式,幻化出来的是自然的本原。接下来让我们进入 MATLAB 的入门操作。

二、MATLAB 的入门操作与线性代数:

上图就是 MATLAB 的整个界面,我觉得挺友好,当前文件夹、命令行窗口、工作区三足鼎立,上面的控制区域也是清晰明地描述了它们各自的功能。

1.使用 clcclear 清空命令行窗口和工作区。当然你也可以在上面的窗口找到 “清除工作区” 和 “清除命令”,可咱们毕竟是程序员嘛,就要用程序员的手法来快速清空。

2.矩阵的输入:a=[1 2 3;4 5 6;7 8 10]

值得一提的是,中间使用分号分隔的话,a 矩阵为三行三列的方阵;中间使用逗号分隔的话,a 矩阵为一行九列的行矩阵。如果一串命令行后面紧跟 “;”,那结果将不会显示在命令行窗口中。看到这里肯定有朋友要问了,为什么 a 矩阵不直接 7,8 后面跟着 9,而要用 10,这个问题我们待会到线性代数的时候再说。对于矩阵的操作还有

a=zeros(3,3)生成三行三列的零矩阵 a=ones(3,3)生成三行三列的全 1 矩阵 a=rand(3,3)生成三行三列的在 (0,1) 区间内均匀分布的随机阵 a=eye(3) 生成三行三列的单位阵 b=inv(a) 求 a 的逆矩阵并赋给 b b=a' 求 a 的转置矩阵并赋给 b ....... 3.对矩阵进行运算的方法。MATLAB 提供了大量的运算方式,其中对矩阵的操作就有若干,这里我们讲讲四则运算:

4.加减法:拿我们刚刚的那个 a 矩阵 a=a+10 即对 a 矩阵进行逐元素加 10 的操作,减法同理;现在有设 b,c 两个维数相等的矩阵,两矩阵相减,则是对应元素相减,加法同理。

b=[1 2 3;4 5 6]; c=[7 8 9;9 8 7]; b-c

5.乘除法: 在matlab中,乘法分为乘与点乘以及特殊的点乘方;除法分为左除、右除、点除;点乘、点除、点乘方的运算都是对矩阵中的每个元素分别进行相对应运算。比如:

a=[1 2 3;4 5 6]; A=a.*3

b=[1 2 3;4 5 6]; c=[6 5 4;3 2 1]; z=b./c

而乘与除则是矩阵运算,这里我们来复习一下线性代数。设有A,B两个三行三列的矩阵。

那现在讲解完乘法后,就进入到了除法的世界里啦,矩阵除法有两种,左除和右除,但在介绍这俩兄弟之前,咱们要来说说非奇异方阵,因为只有当A矩阵是非奇异方阵时,A\B和B/A的运算才能实现。好!那什么是非奇异方阵呢?

若n阶方阵A的行列式不为零,即|A|≠0,则称A为非奇异方阵或满秩矩阵,否则为奇异方阵或降秩矩阵,而且只有非奇异矩阵A,才有inv(A),这也是为什么上面我用了10,而不是9的原因。

了解了这个概念之后,我们接着谈谈除法。课本上有句话这样说:如果A矩阵是非奇异方阵时,则A\B和B/A的运算可以实现。A\B等效于A的逆左乘B矩阵;而B/A等效于A的逆右乘B矩阵。

用代码表示如下:

`inv(A)*B` A\B`B*inv(A)` B/A

有兴趣的读者可以试着上手玩玩,这数学的世界啊,奇妙无穷。

6.图像的绘制

我还记得我高中的时候,老师天天叫我们画各种函数图象,画到手软,那会儿就在想,要是有个能输入函数自动画图的软件该有多好啊!于是上网咻咻咻,当当当当——MATLAB 了解一下!

好啦,我拿上面这个复合图做个代码清单:

x1=-5:0.005:5;y1=x1.^2;plot(x1,y1,'blue')hold onx2=-3:0.005:3;y2=x2.^3;plot(x2,y2,'red')x=-5:0.005:5;y=0_x;plot(x,y,'black')y=-30:0.005:30;x=0_y;plot(x,y,'black')xlabel('x');ylabel('y');legend('x.2','x.3');

由此便得到上面这个图像了。

那要怎么做出一开始那样精美的数学三维图啊?别急,我这就贴出代码清单:

[x,y]=meshgrid(-2:0.05:2);z=x.*exp(-x.^2-y.^2);surf(x,y,z)

不禁想吟一句“镜里镜外山相似”,下句诗由读者接!

三、结语

本次 chat 分享到这里就告一段落啦,等我过段时间把蝴蝶分类识别搞定了,再开个 chat 和大家分享心得体会。我也是前几日初学 matlab,借鉴了 MATLAB 的官方文档以及网络上的一些文章,自己总结出了点儿 tips,由于是快速入门,所以很多很细的东西没有深入去讲。MATLAB 是一门很棒的数学建模语言,也希望这场 chat,可以让大家体会到数学之美,进而喜欢上数学。如果有哪些不足之处,大家可以在读者圈里跟我提出来,浅浅会虚心接受的。


本文首发于GitChat,未经授权不得转载,转载需与GitChat联系。

阅读全文: http://gitbook.cn/gitchat/activity/5ada77ddecbdde7d991cfcc0

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App , GitChat 专享技术内容哦。

快速入门 Matlab 与线性代数相关推荐

  1. MATLAB基础教程,扫盲贴,快速入门MATLAB

    MATLAB中文论坛论坛 http://www.ilovematlab.cn/thread-542310-1-1.html MATLAB最基础教程(零):基本数学概念 前言:matlab只是个软件,用 ...

  2. [快速入门MATLAB]MATLAB常见问题及解答汇总

    clear global是什么意思? 清除所有全局变量可使用clear global warning off是什么意思? 可以在程序前面加warning off,不显示warning,结果出的更快了 ...

  3. NumPy快速入门-- Less 基础/线性代数

    文章目录 1. 广播(Broadcasting)规则 2. 使用索引数组索引 3. 使用布尔值作为数组索引 4. ix_()函数 5. 线性代数 简单数组操作 6. 技巧和提示 6.1 "自 ...

  4. 快速入门Matlab——求取一元函数最小值和零点

    Matlab程序推荐:智能微电网PSO优化算法 利用白噪声特性和ARMR模型,通过求解模型参数生成随机风速 粒子群综合能源系统优化的matlab实现 学习目标:求一元函数最小值和零点 %%  函数的极 ...

  5. 2.8 其他快速入门必要知识

    完成入职后,大家首当其冲的就是开始开始接触各种真实产品.真实产品一般都跨越多个学科,需要大家快速补充各学科基础知识.而且新人入职后,还需要尽快补足各种基本职场技能,如写作.演讲.交流.出差.安全等.因 ...

  6. MATLAB2019 快速入门教程(官方手册翻译)(2/4)

    2 语言基础 2.1 矩阵与方阵 2.1.1 矩阵 2.1.2 输入矩阵 2.1.3 求和,转置和对角线转列向量函数 2.1.4 矩阵函数 2.1.5 矩阵的产生 2.2 表达式 2.2.1 变量 2 ...

  7. MATLAB 2019 快速入门教程(官方手册翻译)(1/4)

    1 快速入门 1.1 MATLAB 产品描述 1.1.1 数学.图形与编程 1.1.2 规模.集成与部署 1.1.3 关键特性 1.2 MATLAB 界面基础知识 1.3 矩阵与数组 1.3.1 建立 ...

  8. spss22.0统计分析从入门到精通_数据分析最全资料:SPSS/MATLAB/SQL/SAS/EXCEL经典教材+视频教程,快速入门!...

    可以说当今社会数据就是力量.数据分析能力已经成为各个行业必备的技能,如果能熟练掌握数据分析技能,不管是留学申请还是以后的就业,都会是一个很大的加分项. 但是目前国内很少有高校专门开设数据分析课程,想要 ...

  9. 【MATLAB Image Processing Toolbox 入门教程三】快速入门之“在多光谱图像中寻找植被”

    [MATLAB Image Processing Toolbox 入门教程三] 本篇摘要 一.从多光谱图像文件导入彩色红外通道 二.构建近红外光谱散射图 三.计算植被系数并显示其定位 四.综合实例部分 ...

最新文章

  1. 带你彻彻底底搞懂朴素贝叶斯公式
  2. templates的语法
  3. KillTimer()的使用
  4. 解读直播连麦与点播加密
  5. 《C++语言基础》实践参考——友元类
  6. 大数据学习规划(新手入门)
  7. 使用canal实现MySQL 8 增量同步数据到 ElasticSearch 7.15.2中 linux
  8. linux vlc 串流_linux下VLC的安装
  9. 1000行MySQL学习笔记,收藏版!
  10. js 获取中括号里面字符串_西门子SCL编程入门教程连载(18)——字符串
  11. java第一章_java 第一章
  12. 深入理解Linux内核01:内存寻址
  13. 开源引擎推荐—ElGameEngine 作者:trcj(http://blog.csdn.net/trcj1)
  14. 如何调用npm已经安装在全局位置的模块
  15. php mysql 嵌套查询_MySQL的嵌套查询_MySQL
  16. (EXCEL VB初体验)EXCEL自动行高再加高,超详细
  17. html日历页面节假日_基于jquery实现可查询节假日万年历代码
  18. 软件开发价格估算方法
  19. macOS High Sierra 10.13.4 安装n2n
  20. ACTS:首屈一指的软件测试策略是什么?

热门文章

  1. 计算机以前e盘里的文件图片都是横排的,现在突然变成竖排怎么办】,wps文档怎么办横排变竖排 变成竖排处理方法...
  2. 银河麒麟龙芯mips64架构集成RXTX串口通讯兼容问题
  3. 外汇资金管理上易犯的错误
  4. 对自适应拉普拉斯机制的理解
  5. 数据库的三级模式:外模式、模式和内模式
  6. foxbot机器人指令_FOXBOT编程手册.doc
  7. Traceroute到底是什么?
  8. Amlogic预装第三方APK
  9. 来了解一下ASN.1?
  10. 新装mac系统finder不断重启