可以这么说,任何一种编程语言/工具都可以实现所有可能的功能,只不过不同语言对于同一功能实现的难度和性能不同而已。
首先说下matlab和python是什么。matlab是包括了matlab脚本语言、simulink、toolbox等众多功能的开发平台。以下只针对matlab脚本语言。而python则是一种面向对象的编程语言。两者擅长的场景不同,也不是互斥的。下面简单说几点两者的区别:跨平台
matlab的底层库是C,UI等功能是java,因此在matlab脚本中运行的代码实际上就是去调用C和java。不同版本的matlab的底层代码会有一定差异,这导致了在某一版本matlab上编写的脚本放到另一版本的matlab上可能会出现运行错误。因此脚本的正常运行依赖于特定版本的matlab平台。
而python采用了虚拟机技术,通过虚拟机可以实现跨平台。可以做到“一次编写,处处运行”开发速度
由于matlab语法与python相比,更加接近自然语言,因此使用matlab的开发速度要比python快运行速度
matlab针对矩阵运算做了大量的优化,这使得其运行速度比python快
matlab和python还有一些其他方面的区别,这里就不详细展开了,有兴趣的可以自行搜索。
matlab和pyrhon的不同特性使得它们适合不同的场景。针对题主说的航天、自动化和嵌入式开发三个领域而言:航天领域适合使用python。由于python的跨平台性,只要完成一次编写就可以将代码运行在不同的平台上,这对于要上天的卫星而言是再好不过的。而matlab则完全不适用,总不能在卫星的电脑里装matlab,然后发射个程序员上天吧?
自动化领域适合使用python。原因和航天领域相似,此外matlab感人的价格也不适合在自动化领域中使用。哪个资本家放着免费的python不用,去用收费的matlab?
嵌入式开发适合使用matlab。这主要是因为matlab适合进行算法的快速开发
更一般的,如果代码是最终产出,使用python;算法是最终产出,选matlab
而且,matlab和python两个可以同时使用,不矛盾的。