我发现matlab有很多用处,但我现在的雇主没有matlab许可证:Comsol有一个,它带有comsol Script.乍一看,comsol脚本与matlab完全相同,但过了一段时间,你会发现令人毛骨悚然的差异.许多图形图形的功能不存在,您无法将图形导出为矢量图形格式.但更糟糕的是,对于繁重的计算来说,性能似乎要差得多,因为琐碎的算法会有很多崩溃.
(当然,comsol包的目的完全不同,但我只对像matlab一样使用它,因为我们没有matlab许可证.)
matlab和Comsol脚本核心是否存在差异?
他们处理内存和矩阵计算有何不同?
他们处理内存和矩阵计算的方式不同吗?
几乎可以肯定,是的(在实施层面)。我以前没听说过comsol,但它速度慢一点也不奇怪。过去几年,Mathworks 在性能优化方面投入了大量精力。使用 JIT 消除了大量解释器开销。他们还执行缓存友好的技巧,例如执行
mybigresult = big1 .* big2 + big1 .* big3
Run Code Online (Sandbox Code Playgroud)
as(C 风格伪代码)
for (size_t i=0; i<numelement; i++) {
mybigresult[i] = big1[i] * big2[i] + big1[i] * big3[i];
}
Run Code Online (Sandbox Code Playgroud)
而不是创建临时文件并多次扫描内存。最后,在最新版本中,他们为后端的大部分内容添加了多线程支持。(注意:从语义上讲,Matlab 仍然是单线程的)。
一些免费的 Matlab 替代品:octave(旨在成为开源等效项)、python + numpy(非常不同的语言,但具有相似的基本功能)。
如果 Matlab 使您的工作效率更高,您可能需要尝试让您的雇主支付许可证费用...(5 万美元/年薪水 * 10% 的工作效率提高)= 如果购买 Matlab,则完成价值 5 万美元的额外工作(只是在这里编造数字)。