**Similar to the Grouped-Z Project function in ImageJ where you can do Standard Deviation of your data with a group size of 10.
3-Dimensional Matrix and Standard Deviation
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Sami Case
 el 23 de Mayo de 2021
  
    
    
    
    
    Comentada: Sami Case
 el 25 de Mayo de 2021
            Hi there,
I have a 3-Dimensional matrix (sizeX, sizeY, 700 Frames).  I would like to group the "frames" in groups of 10, so that I can take the standard deviation of each of these groups of frames. E.g. -- Since I have 700 frames (z values), I would like to take the standard deviation of 1:10, then 11:20,  then 21:30. For mean, I could just bin them in groups of ten (using for loop and mean function) and get my 70 values.  But for standard deviation, I'm not sure how to do this.
2 comentarios
Respuesta aceptada
  Sulaymon Eshkabilov
      
 el 23 de Mayo de 2021
        Hi,
Here is a relatively simple solution for the standard deviation calculation:
D = DATA;   % DATA of size: X-by-Y-Zs, where Zs = 1:700;
IND = 1:10:700;
for ii=2:numel(IND)
    S_D(ii-1) = std2(D(:,:,IND(ii-1):IND(ii)));       % Standard deviation
    M_D(ii-1)=mean2(D(:,:, IND(ii-1):IND(ii)));       % Mean values
end
Good luck.
4 comentarios
  DGM
      
      
 el 24 de Mayo de 2021
				
      Editada: DGM
      
      
 el 24 de Mayo de 2021
  
			Try this:
D = rand(10,10,100); % random sample data
blocksize = 10; % how many pages to collapse?
npages = size(D,3);
IND = 1:blocksize:npages;
stdpict = zeros(size(D,1),size(D,2),numel(IND));
meanpict = zeros(size(D,1),size(D,2),numel(IND));
for ii=1:numel(IND)
    idxrange = IND(ii):(IND(ii)+blocksize-1);
    % Standard deviation of block along dim 3
    stdpict(:,:,ii) = std(D(:,:,idxrange),0,3); 
    % Mean of block along dim 3
    meanpict(:,:,ii) = sum(D(:,:,idxrange),3)/blocksize;       
end
% the indexing will break if npages is not integer-divisible by blocksize
This does operations along dim3 of each block of pages.  That sounds like what you're after.
Prior code was also indexing 1:11, 11:21, 21:31, etc, and dropping the last sample block.  
Más respuestas (0)
Ver también
Categorías
				Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


