Filling up a matrix
    3 views (last 30 days)
  
       Show older comments
    
I have an array of 69 x 1 cells. Every cell contains a matrix of either 12 x 1 or 13 x 1. I want Matlab to make a matrix of 13 x 69 and filling up the empty spaces of the 12 x 1 matrices by adding zero's.
Is this possible?
Thanks for the help!
0 Comments
Answers (2)
  James Tursa
      
      
 on 28 Sep 2015
        How about a simple loop:
result = zeros(13,69);
for k=1:69
    n = numel(mycellarray{k});
    result(1:n,k) = mycellarray{k};
end
  Walter Roberson
      
      
 on 29 Sep 2015
        first13 = @(V) V(1:13);
result = cell2mat( cellfun(@(V) first13([V;0]), YourCellArray, 'Uniform', 0) );
If the cells can be variable size all the way from empty to 13, then use
first13([V;zeros(13,1)])
2 Comments
  Walter Roberson
      
      
 on 29 Sep 2015
				result = cell2mat( cellfun(@(V) first13([V;0]), YourCellArray, 'Uniform', 0).' );
See Also
Categories
				Find more on Data Type Conversion 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!

