0

这可能是一个长镜头,但我问了一个问题有关转换的统计数据的一个工具箱码earlyier到C#意识到这只是一个庞大而漫长的过程,并没有太多的办法使其自动化(真的,我想要的,因为我提供的参考文献解释了为什么手工操作非常困难,因为我得到的评论在哪里:为什么不尝试转换它并询问你卡住的位置,这显然是我的问题不知道!)多线程和多进口MATLAB文件

我一直在寻找这样做的原因是因为通过MATLAB完成进出口工作什么的(K-手段,对大数据集的贝叶斯分类器)所需的处理时间长。所以我很好奇嘿,为什么不把代码转换成C#,并尝试多线程和多处理,这可能提供了一种功能性的手段来减少处理时间。但显然,它非常难以手动将所有的matlabs函数转换为C#以支持这一点。

所以我的问题是,如果我导入matlabs文件到C#是有可能让他们使用/多线程中运行和多时尚或将导入的文件只需要运行,就像他们在MATLAB做什么?

的原因(我觉得)它运行在MATLAB慢是这些功能或统计工具箱他们有的只是从具体多线程中受益:

MATHEMATICS 
Arrays and matrices 
• Basic information: ISFINITE, ISINF, ISNAN, MAX, MIN 
• Operators: +, -, .*, ./, .\, .^, *, ^, \ (MLDIVIDE),/(MRDIVIDE) 
• Array operations: PROD, SUM 
• Array manipulation: BSXFUN, SORT 


Linear algebra 
• Matrix Analysis: DET, RCOND 
• Linear Equations: CHOL, INV, LINSOLVE, LU, QR 
• Eigenvalues and singular values: EIG, HESS, SCHUR, SVD, QZ 

Elementary math 
• Trigonometric: ACOS, ACOSD, ACOSH, ASIN, ASIND, ASINH, ATAN, ATAND, ATANH, COS, COSD, COSH,HYPOT, SIN, SIND, SINH, TAN, TAND, TANH 
• Exponential: EXP, POW2, SQRT 
• Complex: ABS 
• Rounding and remainder: CEIL, FIX, FLOOR, MOD, REM, ROUND 

Special Functions 
• ERF, ERFC, ERFCINV, ERFCX, ERFINV, GAMMA, GAMMALN 

DATA ANALYSIS 
• CONV2, FILTER, FFT and IFFT of multiple columns or long vectors, FFTN, IFFTN 

所以我不会来确定如何或以何种方式当处理接近数万条记录时,我可能会减少处理时间,kmeans和bayes分类器在其处理时间(可以理解)上实在难以承受。

回答

1

这是不是你就能轻松做到。实际上我会说这是不可能的。

如果您尝试它,你有以下的问题来处理:

  • 查找(半)自动化的方式来数学实验室的功能转换成C#
    这不存在我的知识。
  • 改变所得到的代码进行多线程启用
    要修改的数学算法,支持多线程是非常困难的,有时甚至是不可能的,因为使用
  • 记住也请一些数学问题不缩放数据结构与处理器的数量,所以你可能甚至没有得到你期望的好处。
+0

达姆,果然不出我所期待的。我发现这个博客[加快K均值(http://webcache.googleusercontent.com/search?q=cache:5lO3bF0UDFoJ:lingpipe-blog.com/2009/03/12/speeding-up-k-means-clustering-代数 - 稀疏矢量/ + matlab + kmeans +多线程&cd = 11&hl = en&ct = clnk&gl = uk&client = firefox-a)所以我可能会弄清楚他在这里做了什么。 – 2012-03-19 18:28:01

+0

感谢帖子。 – 2012-03-19 18:28:40

+0

@Garrith这篇文章描述了如何优化(数学)现有的算法,如果你有数学背景,这是明确的方法,因为在那里你通常可以得到比x2或x4更好的执行减少。你也可以很好地了解你的数据,通过这些信息,你通常可以更好地优化一个算法,但是这没有任何与并行化相关的问题,例如 – ntziolis 2012-03-19 18:38:25