How can i replace this code to fast up?

2 次查看(过去 30 天)
subha
subha 2014-8-5
编辑: subha 2014-9-25
for i=1:500,
subplot(23,23,i);
x=vishid(:,i);
imagesc(reshape(x,imagesize));
colormap gray;
end
Here,vishid is 784*500 matrix, imagesize=28*28
  2 个评论
Geoff Hayes
Geoff Hayes 2014-8-5
Subha - the above code is trying to create 500 subplots within the figure, so it may take some time! :) Adding a drawnow command after the colormap gray line shows how the first 30-40 subplots get drawn relatively quickly, but over time, it takes longer and longer to add the newest subplot to the figure. Even just doing the above with something as simple as
for k=1:500
h = subplot(23,23,k);
set(gca,'XLim',[0 1]);
drawnow;
end
takes a long time (this was just to see if the bottleneck had to do with the reshape and imagesc - not the case).
Is there a need to show all 500 subplots on the same figure, or could you break it into two figures of 250?
subha
subha 2014-8-5
Thanks for your post. Its not necessary to show all 500 plots in a same figure, But it will be better, if it is in same.
If time reduce by implementing this in more than one figure, i am happy about it

请先登录,再进行评论。

回答(3 个)

Jan
Jan 2014-8-5
Do you really need 500 images with separate axes objects? You can draw 500 im ages in one axes, when wet the coordinates appropriately. This would be much faster.
  3 个评论
Image Analyst
Image Analyst 2014-8-6
I totally agree. 500 subplots is absurd. Most of the space will be taken up be white space and you won't see the images.
Matt J
Matt J 2014-8-6
Whether it's worthwhile depends on how well you need to see the images. Thumbnail views have their uses.

请先登录,再进行评论。


Matt J
Matt J 2014-8-5
Making the figure invisible until all subplots have been established might help,
h=figure;
set(h,'Visible','off')
for i=1:500,
subplot(23,23,i);
x=vishid(:,i);
imagesc(reshape(x,imagesize));
colormap gray;
end
set(h,'Visible','on')
  2 个评论
subha
subha 2014-8-5
Thanks.Actually, in my case, already my figure appears only after it plots all the 500 plots. so, i am not sure, this will help. Let me try again and come back to u
subha
subha 2014-8-5
I have done . But no difference with speed

请先登录,再进行评论。


Image Analyst
Image Analyst 2014-8-6
If you have enough memory, use the montage() function. Or else just use regular indexing. Are the images grayscale or color?
  6 个评论
subha
subha 2014-9-25
编辑:subha 2014-9-25
thanks a lot for your interesting animation ..
Image Analyst
Image Analyst 2014-9-25
Does it do what you want? I thought it did what you said to do. If it does, please mark it "Accepted".

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Red 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by