微软放弃了vb.net的开发,但是持续花费巨资投入F#,简单一看他的语法就是qbasic ,vb6一样。鹿死谁手,谁能相信vb.net竟然被f#给干掉了。外面有vb6语法的python成了全球第一的编程语言,内部还有强大的教授开发的这工具扯后腿。
有人说为什么中国搞不出像matlab这样的计算工具?
但是很多语法又太简单抽象了,甚至都看不懂了。都有点像汇编一样,或者 cmd命令行一样生涩难懂。变成了一个高级的语言,如果把它用于专业的科学计算,这个事情使用matlab完全可以解决,因为他可以编译com dll,给不同的编程语言直接调用。
所以有的时候我都觉得他不应该像一门编程语言去发展,应该把它当成.net的一个插件,扩展包DLL。
一些复杂的数学运算,我感觉直接写个控件,或者使用第三方软件生成动态库dll,activex dll都足够了。看到有个外国大牛,确实把他当成matlab一样使用:
matlab与C/C++混合编程------在Windows/Linux上调用Matlab编译的动态库文件,这工具居然还可以编译动态dll,com dll,而且还跨平台。http://t.csdnimg.cn/P1LPf
在使用matlab编译的exe或者dll,移植到一个没有matlab的电脑时可能无法运行,需要在官网上下载对应的运行时进行安装后,程序才能正常执行
matlab编程语言是:C++语言。
Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
===========
一段时间以来,我一直在使用 F# 对算法进行建模,然后再用 C++ 对其进行编码,之后还使用它来检查 C++ 代码的结果,并对照真实世界记录的数据。
对于事物的建模方面,它非常方便,但对于"数据混搭"之类的东西,从 CSV 和其他来源提取数据、生成统计数据、绘制图表等,我的同事总是取笑我("为什么要自己编写代码?它内置于 MatLab")。
我有另一位同事非常信赖 R,它也有"内置"的图表功能。
我知道 MatLab、R 和 F# 严格来说不具有可比性,所以我并不是要进行"功能比较"。我只是想知道其他人在这些分析前和分析后的场景中使用什么,以及他们对此有多满意。
(如果有人致力于将 Microsoft Charts 包装成 F# 友好的东西,请告诉我,我很乐意参与...)
(注意:这个问题的答案将是主观的,但请根据经验)
最佳答案
我对 F# 的经验很少,但关于 C++/Matlab/R:如果程序的执行速度最重要,请使用 C++。如果实现的速度最重要,请使用 Matlab 或 R。出于多种原因,这是事实,其中最重要的是它们庞大的数学/统计包库。
Matlab 和 R 都可以通过并行加速:所以一般来说,我认为实现的速度和质量应该是一个更大的问题。在应用程序的设计中,这就是编程的真正"值(value)"所在。如果您可以同时编写 3 或 4 个优秀的 R 程序来编写 1 个优秀的 C++ 程序,这不是一个小命题。
关于F#:既然它是微软框架的一部分,它肯定有很多东西可以提供。如果您在 Visual Studio 中进行开发或处理大型 .Net 项目(例如),则使用 F# 可能很有意义。另一方面,您可以从 .Net 应用程序中同时调用 Matlab 和 R,因此我可能认为它们的库应该是一个更大的问题。例如,参见 this article as an example for R和 the Matlab Builder .
长话短说:比较 F# 和 Matlab/R 并不是一个好的比较。 F# 是一种通用编程语言,而 Matlab/R 可以看作是海量的数学/数据分析工具包。有些人从 F# 调用 Matlab 或 R 以利用每种语言的优势(例如,参见 this discussion、this article on Matlab/F# 或 this article on R/F#)。
就图表而言:R 在这方面非常强大。看看the graphics view on CRAN和 this series of posts on the LearnR blog about Lattice and ggplot2 .
关于matlab - 您使用 Matlab/F#/R 进行数据分析和建模算法的经验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1642201/