Form a matrix from a structure
    9 views (last 30 days)
  
       Show older comments
    
I have a 32*32 data structure. There are 1*1 structures in each of those 32*32 cells. However, i would like to extract all the binary data in the substructures and align them into one matrix. any one with some code that could help me do this please? Thank you
2 Comments
Accepted Answer
  Azzi Abdelmalek
      
      
 on 4 Feb 2013
        
      Edited: Azzi Abdelmalek
      
      
 on 4 Feb 2013
  
      Try
x(1,1).data=1;
x(1,2).data=[2 1];
x(2,1).data=rand(2);
x(2,2).data=[1;2];
out=struct2cell(x);
out(:)
4 Comments
  Azzi Abdelmalek
      
      
 on 4 Feb 2013
				
      Edited: Azzi Abdelmalek
      
      
 on 4 Feb 2013
  
			out=struct2cell(x);  % x is your struct variable
out(:)
What did you get?
More Answers (2)
  Cedric
      
      
 on 4 Feb 2013
        If it is a cell array and cells contents have matching sizes:
 >> doc cell2mat
4 Comments
  Cedric
      
      
 on 4 Feb 2013
				
      Edited: Cedric
      
      
 on 4 Feb 2013
  
			Seems that you edited the question since I posted my answer. Seeing your answer to Azzi, you should just look at what are these variables that you are dealing with, e.g.
 >> S = load('Compressed.dat') ;
 S = 
        ans: {...}
       data: {...}
 >> class(S)
 ans =
      struct
 >> class(S.data)
 ans =
      cell
 >> size(S.data)
 ans =
      32 32
... doing that would help you truly understand the structure of the objects that you are dealing with, which will allow you to index them correctly.
See Also
Categories
				Find more on Annotations 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!

