matlab polt3,MATLAB scatter3,plot3速度差异

这是关于MATLAB如何用非常不同的时间绘制相同的东西 – 以及为什么.

我在3D空间中生成了10000个点:

X = rand(10000, 1);

Y = rand(10000, 1);

Z = rand(10000, 1);

然后我用四种不同的方法之一来绘制这个,创建一个如下的情节:

我关闭了所有数字并清除了每次运行之间的工作空间,以确保公平.

使用scatter3进行批量绘图:

>> tic; scatter3(X, Y, Z); drawnow; toc

Elapsed time is 0.815450 seconds.

使用scatter3进行单独绘图:

>> tic; hold on;

for i = 1:10000

scatter3(X(i), Y(i), Z(i), 'b');

end

hold off; drawnow; toc

Elapsed time is 51.469547 seconds.

使用plot3批量绘图:

>> tic; plot3(X, Y, Z, 'o'); drawnow; toc

Elapsed time is 0.153480 seconds.

使用plot3进行个人绘图:

>> tic; hold on

for i = 1:10000

plot3(X(i), Y(i), Z(i), 'o');

end

drawnow; toc

Elapsed time is 5.854662 seconds.

什么是MATLAB在“更长”的例程中幕后花了这么长时间?使用每种方法有哪些优缺点?

编辑:

感谢Ben Voigt的建议(见答案),我在时间中包含了drawow命令 – 但这对时间没什么影响.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值