GNU倍频程“散射”函数的性能比MATLAB差。有替代品吗?

GNU倍频程“散射”函数的性能比MATLAB差。有替代品吗?,matlab,plot,octave,Matlab,Plot,Octave,为什么与plot函数相比,scatter函数的倍频程性能如此糟糕?此外,与倍频程对应函数相比,MATLAB版本的散射函数似乎燃烧得很快 以下是在我的机器上生成的一些计时,用于比较scattervsplot octave:1> octave:1> A = rand(1000,2); octave:2> tic ; plot(A(:,1) , A(:,2));toc; Elapsed time is 0.0407901 seconds. octave:3> octave:

为什么与
plot
函数相比,
scatter
函数的倍频程性能如此糟糕?此外,与倍频程对应函数相比,MATLAB版本的散射函数似乎燃烧得很快

以下是在我的机器上生成的一些计时,用于比较
scatter
vs
plot

octave:1> 
octave:1> A = rand(1000,2);
octave:2> tic ; plot(A(:,1) , A(:,2));toc;
Elapsed time is 0.0407901 seconds.
octave:3> 
octave:3> 
octave:3> tic ; scatter(A(:,1) , A(:,2));toc;
Elapsed time is 6.16734 seconds.
octave:4> 
MATLAB需要0.16229秒才能在同一矩阵“A”上执行相同的
分散
功能


对于
octave
,是否有更快版本的
scatter

这取决于您对“分散”的使用,但它可能适合您:

plot(A(:,1) , A(:,2) , `o' )
*我不使用八度音阶,但很明显,根据Matlab,指定行格式的字符串以“严重重音”开头,这与Matlab不同

编辑:在上面链接的示例中,他们使用了双引号! 因此,上述情况将是:

plot(A(:,1) , A(:,2) , "o" )

刚刚尝试过,实际上
scatter()
对我来说工作得更快。例如:
经过的时间是0.0116351秒。运行时间为0.00910807秒。
可能他们在过去的3.5年中修复了该问题;)