首页/文章/ 详情

仿真趣谈之四 神奇的MATLAB

5年前浏览4085

怎么神奇了?

先来个美女照开胃!再来正式讲解。

神奇在于:

傻瓜式语言!

函数丰富,功能强大!

能和多个语言对接!

看到这个,我都想问问MATLAB先生,你是不是想一统江湖啊。在这之前,江湖老大是公认的C先生。

我不得不说,这两个是师徒关系。而且是亲密的师徒关系,这是不是会让大家想起“杨小wu”老师的事件啊。我这里只能补充一个评论:脑子进水了。从侧面也反应出:教师队伍该好好清理了。无德的必须走人,那么无能的呢?也建议走人或者转岗。

MatLAB的底层是用C写的,C的效率确实比MatLab高多了。不过MatLab语法确实简单多了。虽然执行效率不高,但MATLAB是用于特定方面的,比如说在矩阵运算、数字信号处理、通信仿真等。在这些方面MATLAB就很有优势。所以师傅和徒弟各有千秋!

MATLAB提供的是一种基于解释的语言,虽然也是一种高级语言,但还是很简单的,它的目标在于用户使用方便,开发简单。但实际上这些方便也是有代价的,编译器承受了这些代价,程序执行效率方面也有损失。另一方面matlab这么做也是基于其专用于科学计算的目的来考虑,无法应用于通用的程序设计。

C语言这么做保持了其编译的速度,便于大型程序设计,执行效率也很高,如os等百万行以上的代码。同时C语言可以做很多计算以外的工作,如逻辑判断,I/O操作等嵌入式应用,如MATLAB编译器。。。两者肯定还有别的差别,我暂时还想不完整,但是这些已经足够说明了两者的不同啦。一句话,应用的范围、目的不同,语言的设计也当然风格迥异了。 

举例说明

MATLAB是一种解释性语言,专门用于和数学相关的工程计算,数值运算能力非常强大,用起来很方便。

比如: 求数组A的最大值的程序如下。

 A=[1 2 3 4 5 6]; %把值赋给A 

max(A)%求最大值 

结果就出来了。

方便吧。

当年我看到这样的例程,差点没欢呼起来,这不就是我多年苦苦找寻的计算机语言吗?

相比之下:C语言就麻烦的多。C语言是面向对象的基础语言,更多的用于底层函数开发,软件开发,单片机控制等。MATLAB能做的C语言肯定能做,但是一般要麻烦的多,而C语言能做的MatLAB不一定能做。比如很多操作系统涉及的底层函数。

形式上最容易发现的区别是,MATLAB是一句一句编译的,而C语言是对一个完整的代码段进行编译的,并且C中有头文件(#include(...)),MATLAB中则没有这段花花肠子。

就凭这一点,我觉得MATLAB已经蛮神奇的啦。同学们还不学起来?

对于数值运算MATLAB是很简便强大的,C就有点繁琐,对于算法要求C相对更高点......

MATLAB主要优势是集成了强大的数学计算功能、画图功能,使得对大规模数据的计算精度和效率可以保证,而且大大方便了仿真。我印象最深的就是那些内插函数,MATLAB提供了大把的函数,但到了C里面,我就只能苦笑了。

MATLAB集成了很多数学计算函数,能很方便的调用,而C语言,你懂的,任何一个算法都需要自己设计,并调试,以保证程序能正确执行。这样的C怎么能够让仿真飞起来呢?如果效率高不起来,那么仿真知识的积累就慢了。时间一长,你会发觉已经被别人拉下几条街了。

MATLAB电子
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2019-04-25
最近编辑:5年前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 395粉丝 2579文章 330课程 40
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈