如wicknec所说,matlab程序与c程序之间可以相互调用,但混编还不是那么容易的事,他们调用都需要专用接口,所以你所说的混编(上一行写matlab程序,下一行写c程序),是不现实的。
matlab针对矩阵运算和图形计算,c没有特别针对的。matlab方便之处在于集成了大量数学函数,可以方便调用而不需要自己设计函数内部。而c语言却没有那么多集成的函数,一般情况下需要自己编写。
举个很简单的例子。如果你要求一个N个未知数的线性方程组,编写matlab程序的时候直接用一个solve函数就搞定,可如果用c,你必须到处找方程组的解法,如果你图简单,用matlab好了。精度上你基本上看不出差别。
matlab是个很强大的工具,对矩阵算法很强大,还可以处理很多建模运算;而C语言是一种面向结构的编程语言,他们各自的侧重点不同。说白了,你如果做矩阵算法,建模运算就用MATLAB,你如果要做程序开发就选C语言!
matlab是一种解释性语言,集成化,专门用于和数学相关的工程计算,数值运算matlab是很简便强大,用起来很方便,比如:
求数组A的最大值的程序如下:
A=[1 2 3 4 5 6];%把值赋给A
max(A)%求最大值
结果就出来了
C语言就麻烦的多
C语言是面向对象的基础语言。更多的用于底层函数开发,软件开发,单片机控制等,matlab能做的C语言肯定能做,但是一般要麻烦的多,而C语言能做的matlab不一定能做。
matlab是用c语言编写的专门用于图像处理,数理计算和仿真之类的应用。它没有c语言简洁,也没有c语言快,只是用在特定的领域,matlab有很多已经写好的接口,看似很方便而已,matlab能解决的问题c语言都能解决。我简单的认为能比c语言更高效的只有汇编和机器语言了 目前为止。。可以混编,在c中可以调用matlab。
总之,牛逼的人只用c,而且不用IDE。跟c(c++)比,其它语言都弱爆了!
matlab是一种比较高级的语言,代码可以直接运行不用编译,里面有很多现成的函数和容易理解的表示方法,还方便画图,语法也更接近自然语言,容易让人理解。对使用者编程知识的要求的门槛比较低。因此搞数值和算法且对程序执行效率要求不高的人比较喜欢用它。
c语言是一门比较基础的语言,它需要编译后才能运行,而且语法更接近于机器语言,而不是数学语言或自然语言,因此对于编程基础一般的人来说没那么直观。但c语言的执行效率很高,仅次于汇编,比matlab高很多(matlab语言可以说简洁但执行效率通常不高),而且自由度上c语言会大很多,不仅能做科学计算,还能编几乎所有程序。因此专门搞编程的和对效率要求高的人喜欢用它。
两个可以混编,但可能不是你想像中的那样。matlab能够调用c编的程序,c也能够调用matlab,这都需要特殊的接口……