need repmat help
    4 views (last 30 days)
  
       Show older comments
    
Hello,
I have a 4D array with two for loops that is very slow. I know repmat is a good tool to speed things up but I am not very good at using it yet. Is there a way to use repmat to replace the follow set of for loops:
%th_diff3_1 has the following dimensions (621,1405,12,116)
for a = 1:621
for b = 1:1405
    x = sum(th_diff3_1(a,b,:,:));
    x = sum(x(1,1,:,:));
    percent3_1(a,b) = (x/1390) * 100;
end
end
Please help me understand repmat!
Thanks,
Dan
0 Comments
Accepted Answer
  Fangjun Jiang
      
      
 on 19 Sep 2011
        It's not about repmat. I think you can do this:
x=sum(th_diff3_1,4);
x=sum(x,3);
percent3_1=(x/1390) * 100
4 Comments
  Jan
      
      
 on 19 Sep 2011
				@Fangjun: Thanks, but I do not _know_ such details. I just try it taking into account that the calculations are performed by a processor. I've learned programming when efficiency was really important: on a ZX81 with 1kB RAM. It was possible to read the complete operating system in two afternoons.
Although Matlab has a higher complexity, the fundamental rules for efficiency did not change: Keep the data compact to avoid unneded operations.
More Answers (0)
See Also
Categories
				Find more on Matrix Indexing 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!

