本文分四步走策略:第一,Matlab是个什么玩意;第二,为什么要学Matlab;第三,怎样轻松、无痛、少走弯路地学习Matlab;第四,怎样写一个Matlab的Hello World。通过这四步走,达到初步搞清楚Matlab是啥的地步。

Matlab是个什么玩意

本人也是多年前在学习信号系统这门课的时候使用过Matlab,记得当时是用它来做一些求微分方程、傅里叶变换、拉普拉斯变化等等之类的事情,只是觉得它非常厉害,是一个万能的计算器,能算各种手工算起来超复杂的数学运算,包括但不限于下列功能:

  • 基本初等数学运算(四则运算、幂指对数、三角函数、多项式计算等):简直是一个增强版的、犹如瑞士军刀一样的超级计算器。
  • 矩阵运算:这就不用说了,线性代数里面那些让你痛苦不堪的行列式、矩阵、求解线性方程组等的计算,Matlab都是分分钟几行代码搞定的事。
  • 概率统计分析:各种概率分布、概率密度、统计特性的计算,也是Matlab十分擅长做的。
  • 符号计算:包括求微分方程、傅里叶变换、拉普拉斯变换等等。
  • 绘制各种二维、三维图像。
  • 支持程序化编程,支持GUI(图形用户界面)编程。
  • 信号仿真:学习信号与线性系统的好帮手(就像本人当年那样)。
    ...

一言以蔽之,Matlab是一个:只有你想不到、没有它做不到的功能的解决各种科学计算问题的瑞士军刀。

为什么要学Matlab

问得好,学一个东西前,必须要解决"为什么要学"的问题,这是能够学好一个东西的基石。为什么是学习这个东西而不是学习别的东西?学了它之后我可以用来做什么?下面列举五个无法拒绝学习Matlab的理由:

  • 功能强大,在科学计算领域,只有你想不到,没有它做不到的功能,可以解决你在这些领域遇到的99.999%的计算难题。
  • 代替手工计算,效率翻番何止十倍。以往手工算一个数学题可能需要密密麻麻写满几大张草稿纸,而Matlab只需几行代码即可优雅解决。
  • 交互式的学习环境,所见即所得,让你能瞬间看到刚刚所敲代码的运行结果,容易产生浸入式的流体验。
  • 业界通用,有千千万万的工程师、分析师等等各色人等都在用;解决各个行业的问题都可以用,从数学、统计学到物理学、生物学、电信、电力,再到经济学、金融,再到数据分析处理、人工智能,简直无所不能。
  • 最后一点,也是最重要的,它可以解决你学习或工作中的一些切身"痛点"。比如可以缩短我做复杂的概率论作业的时间从而腾出来更多时间来一局游戏。

怎样轻松、无痛、少走弯路地学习Matlab

  • 在Matlab交互式环境上实际操作。交互环境下,所见即所得,体验每个命令、每个函数的作用和效果。
  • 用实际需要驱动学习。比如:我想用Matlab来做高斯消元法解线性方程组,那么不要犹豫,just do it! 不要想着等到把Matlab这个东西的所有规则、语法、套路都了熟于胸的时候才动手去做,而是从现在、此刻就开始去做、去实现这个需求,在做中一步步学具体的知识点。
  • 做点好玩的。实际的需求难免枯燥乏味,这个时候如果想深入、持续地去学习,就要自己找点"乐子"来做,比如去尝试怎么画出一个心形曲线,怎么画出一个狂拽酷炫的三维图像,等等。
  • 多使用demo命令看Matlab自带的短小精悍的demo程序。

怎样写一个Matlab的Hello World

环境安装

由于Matlab是一个商业软件,其本身体积非常大,且收费,所以为了方便起见,本人下载了一个超精简版、免安装的Matlab 5.3绿色版本(这里是下载地址),整个软件包只有70多MB,打开即用。虽然是精简版的,但对于基础功能的练习足够了。

其界面的画风是这样的:

简直简洁(简陋)到没朋友,一打开就是交互式命令行,我敲了一个算式:1 + 1,然后回车,它就算出来了结果:2

Hello World

Hello World应该是在程序员界最为知名的一句话,任何一门编程语言的入门级教程里第一页(或前几页)都写有这句话。当然Matlab也是一种编程语言,这里我们也用Matlab的disp函数来输出Hello World来开启我们的入门之旅。

随机推荐

  1. sql语句优化 (转)

    性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化. 为了获得稳定的执行性能,SQL语句越简单越好.对复杂的SQL语句,要设 ...

  2. 第三篇:CUDA 标准编程模式

    前言 本文将介绍 CUDA 编程的基本模式,所有 CUDA 程序都基于此模式编写,即使是调用库,库的底层也是这个模式实现的. 模式描述 1. 定义需要在 device 端执行的核函数.( 函数声明前加 ...

  3. [SDOI2016 Round1] 征途[斜率优化]

    2225. [SDOI2016 Round1] 征途 ★★★☆   输入文件:menci_journey.in   输出文件:menci_journey.out   简单对比时间限制:1 s   内存 ...

  4. 关于metaspolit中进行JAVA反序列化渗透RMI的原理分析

    一.背景: 这里需要对java反序列化有点了解,在这里得推广下自己的博客嘛,虽然写的不好,广告还是要做的.原谅我: 1.java反序列化漏洞原理研习 2.java反序列化漏洞的检测 二.攻击手法简介 ...

  5. 解决存储过程中拼接的SQL字符串超长导致sql语句被截取的问题

    今天遇到了一个奇葩的问题:存储过程中的sql字符串拼接的太长,超出了分页存储过程执行sql参数的nvarchar(4000)的长度. 没办法,只能修改自己的存储过程,因为分页存储过程是不能动的. 开始 ...

  6. 浅析pc机上如何将vmlinuz-2.6.31-14-generic解压出vmlinux

    浅析pc机上如何将vmlinuz-2.6.31-14-generic解压出vmlinux luther@gliethttp:~$ vim /boot/grub/grub.cfg 可以看到我们进入的系统 ...

  7. Vim 字符集问题

     使用CentOS中的Vim 文本编辑器出现中文乱码的问题. 凡是字符乱码的问题,都是字符集不匹配的问题引起的.这里的字符集不匹配只的是文件的编码和解码方式不匹配,同时可能涉及到不只一次的解码过程. ...

  8. Spark Streaming Programming Guide

    参考,http://spark.incubator.apache.org/docs/latest/streaming-programming-guide.html Overview SparkStre ...

  9. C++的全部目标就是最优化资源的利用,以人付出更多为代价。Python刚好是另一个极端(Bjarne就说,一个人至少应该掌握两种计算机语言)

    说 C++ 反人类,是如果把 C++ 看作人(程序员)和资源(电子系统)的桥梁,他的全部目标就是最优化资源的利用,以人付出更多为代价.Python刚好是另一个极端.做好两个一起学.Bjarne就说,一 ...

  10. Tr A--hdu1575(矩阵快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1575 算是模板吧 #include <iostream> #include <std ...