help me to reduce my function time runing
    4 views (last 30 days)
  
       Show older comments
    
Hi every body
This is my code
if true
  for r = 1:100
  U = 1 * (r-1);
  for c = 1:100
  V = 2 * (c-1);
  F(r,c) = 10 * sin(U + V);
  end
  end
  imagesc(F);
  colormap(gray);
end
Its generate a replicate pattern which I upload it here. Is there any suggestion to reduce the running time for this code?
Thanks

0 Comments
Accepted Answer
  Roger Stafford
      
      
 on 21 Oct 2014
           U = (0:99).';
   V = 0:2:198;
   F = (10*sin(U))*cos(V)+(10*cos(U))*sin(V);
   imagesc(F);
   colormap(gray);
0 Comments
More Answers (1)
  Henrik
      
 on 21 Oct 2014
        
      Edited: Henrik
      
 on 21 Oct 2014
  
      This should work:
if true
F=zeros(100,100); %always preallocate
c = 1:100;
V = 2 * (c-1);
for r = 1:100
U = 1 * (r-1);
F(r,:) = 10 * sin(U + V);
end
imagesc(F);
colormap(gray);
end
You can get rid of the r loop too with e.g. bsxfun, but I don't have time to test it right now
See Also
Categories
				Find more on Waveform Generation in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!