How to make a new matrix from find function results of different size
    2 views (last 30 days)
  
       Show older comments
    
    Georgios Tertikas
 on 22 Jun 2018
  
    
    
    
    
    Commented: Ameer Hamza
      
      
 on 24 Jun 2018
            I have a matrix of IC 2008x1 that has values from 1 to 16 (some in between number might be missing) and I want to create a matrix that each column has the rows of the original matrix that correspond to each value 1 to 16 eg original matrix 4; 1; 3; 2; 5; 6; 4; new matrix [2] [4] [3] [1;7] [5] [6]
I try to do this like this for j=1:B
 k=find(IC==j);
  F(:,j)=k;
end where B is 16 but it says that Subscripted assignment dimension mismatch. Do you know an alternative that works regaldless of this mismatch?
0 Comments
Accepted Answer
  Ameer Hamza
      
      
 on 22 Jun 2018
        In a normal array, all rows and columns must have equal length. You need to use a cell array
for j=1:B
  k=find(IC==j);
  F{j}=k;
end
7 Comments
  Ameer Hamza
      
      
 on 24 Jun 2018
				You must be using R2016a or earlier. It that case, change the line like this
printf(f, [repmat('%f ', 1, numel(F{i})), 10], F{i});
More Answers (0)
See Also
Categories
				Find more on String Parsing 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!
