Matlab/F#/R进行数据分析和建模算法的经验,vb.net输给他了

2024-01-05 08:44

本文主要是介绍Matlab/F#/R进行数据分析和建模算法的经验,vb.net输给他了,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

微软放弃了vb.net的开发,但是持续花费巨资投入F#,简单一看他的语法就是qbasic ,vb6一样。鹿死谁手,谁能相信vb.net竟然被f#给干掉了。外面有vb6语法的python成了全球第一的编程语言,内部还有强大的教授开发的这工具扯后腿。

fdf52787d54b4bd68895aa9935df2d3b.png

 有人说为什么中国搞不出像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/

 

 

 

 

这篇关于Matlab/F#/R进行数据分析和建模算法的经验,vb.net输给他了的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/572302

相关文章

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.