how to split one dimensional array into 3 equal chunks?
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    sana3 sal
 il 24 Set 2018
  
    
    
    
    
    Commentato: Star Strider
      
      
 il 24 Set 2018
            Hi, I have the attached data array as an example, I need to split it into 3 equal chunks! Then I need to apply that for any other array with the same type but with different length.
2 Commenti
  Adam Danz
    
      
 il 24 Set 2018
				There's one variable stored in your mat file so it would be a lot simpler to help you if you just describe that variable rather than require multiple people do download a mat file, load it in matlab, etc.
The variable Cb is a column vector of length 4897 which is not divisible by 3 so it is impossible to divide it into 3 chunks of equal length.
Risposta accettata
  Star Strider
      
      
 il 24 Set 2018
        Try this:
s = load('Cb.mat');
Cb = s.Cb;
var3c = @(oldvar) mat2cell(oldvar(:), [fix(numel(oldvar)/3) *[1, 1], numel(oldvar)-2*fix(numel(oldvar)/3)], 1);     % Create New Matrix From Original Vector
newCb = var3c(Cb)
newCb =
    3×1 cell array
      {1632×1 double}
      {1632×1 double}
      {1633×1 double}
You cannot divide your vector equally, although you can get close. The ‘var3c’ anonymous function works with any length vector. It returns a cell array of 3 column vectors, even if the original vector is a row vector.
5 Commenti
  Star Strider
      
      
 il 24 Set 2018
				As always, my pleasure!
If it gives you the same result as I got, that would work.
Più risposte (1)
  Adam Danz
    
      
 il 24 Set 2018
        
      Modificato: Adam Danz
    
      
 il 24 Set 2018
  
      This will take a column vector whose length is divisible by 3 and reshape it into a matrix with 3 columns of equal length. Each column of the new matrix will be one of your chunks.
 Cb = (1:300)'; 
 n = 3;
 Cbmat = reshape(Cb, [], n);
Cbmat(:,1) is chunk 1, Cbmat(:,2) is chunk 2, etc.
This will break if Cb is not divisible by n.
0 Commenti
Vedere anche
Categorie
				Scopri di più su Matrices and Arrays in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


