我一直在使用Octave和MATLAB进行一些项目,我遇到了一些问题.这个问题为什么/什么时候我更喜欢MATLAB而不是Octave?回答了几个,但还是有一个挥之不去......
我已经阅读了一些帖子/其他来源,比较了Octave和MATLAB的性能,我在标准脚本上运行了一些自己的测试,证实了Octave通常比标准操作的MATLAB慢得多(迭代,当然,这样比较是有意义的).
这一共识似乎也表明,大多数MATLAB的性能提升都归功于它的JIT编译器,它在运行时编译大型循环.这是有道理的,在这些情况下似乎会出现最大的性能差异(例如Mathworks Matlab与Gnu Octave)
我的问题如下:为什么矢量化代码在Octave中运行得更慢?在这种情况下,似乎应该在循环之前留出内存,并且一些本机C/C++循环应该执行操作,这将等同于Octave和MATLAB之间的矢量化代码的性能.另外,这是否具有更广泛的含义,即即使编写代码使得JIT编译器不需要/未使用,Octave可能对复杂操作执行得更差?
我有一个表格的集合
{ id : 1,
data: [ [ { name : "alice" }, { name : "bob" } ],
[ { name : "dan" }, { name : "rob" } ] ] }
Run Code Online (Sandbox Code Playgroud)
并且数组的结构具有意义.我如何更新第一个元素([0] [0])并设置name ="alex".我已经看到很多问题,解决如何更新匹配查询而不是特定元素的数组元素.需要说明的是,更新后,记录应如下所示:
{ id : 1,
data: [ [ { name : "alex" }, { name : "bob" } ],
[ { name : "dan" }, { name : "rob" } ] ] }
Run Code Online (Sandbox Code Playgroud)