matlab的底层是C写的,C的效率比MATLAB要高,但MATLAB语法简单多了而且简单,但执行效率不高MATLAB是用于特定的方面的,比如说矩阵运算方面、DSP就很有优势。
而C语言不同,很多软件的底层都是C编写的MATLAB提供的是一种基于解释的语言,虽然也是一种高级语言,但是还是很简单的,它的目标在于用户方便,开发简单。而实际上这些方便也是有代价的,编译器承受了这些代价,程序执行效率方面也有损失。
另一方面MATLAB这么做也是基于其专用于科学计算的目的来考虑的,无法应用于通用的程序设计。c语言这么做保持了其编译的速度,便于大型程序设计,执行效率也很高,如os等百万行以上的代码。
同时c语言来做很多计算以外的应用环境,如逻辑判断,I/o操作等嵌入式应用,如MATLAB编译器。显然基于向量的计算优化,对于这些应用反而是负担。当然还有别的原因,我暂时还想不完整,但是这些已经足够说明了两者的不同啦。一句话,应用的范围、目的不同,语言的设计也当然风格迥异了。
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是很简便强大的,c就有点繁琐,对于算法要求c相对更高点。
MATLAB主要优势是集成了强大的数学计算功能,对大规模数据的计算精度和效率可以保证。MATLAB中集成了很多数学计算函数,能很方便的调用,而c语言,你一定知道,任何一个算法都需要自己设计并调试,以保证程序能正确执行。
MATLAB优势在于大规模矩阵运算、解常微分、偏微分方程,包括图像识别、人工智能、滤波等等,可以说,MATLAB是一个专业的数学软件,一个高效的专业工具。 一句话概括,MATLAB集成了很多数学计算功能,专注于数学计算领域,而c语言是一个更大众化的程序平台。
MATLAB是解释型脚本,c语言是编译执行的语言,简单说MATLAB的解释程序是看一句代码执行一次,而C语言的编译器必须编译好源文件生成目标代码,再执行整个目标代码。 MATLAB底层是C/C++实现的。.m文件可以使用MATLAB内置的mcc命令编译成exe文件。