Info
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
How to convert 182*1 struct with 20 fields to 1*1 struct with 20 fields?
    조회 수: 3 (최근 30일)
  
       이전 댓글 표시
    
I have 20*182 cell which I need to convert to struct. By using cell2struct command I am getting 182*1 struct but I want 1*1 struct.
Source data file

댓글 수: 5
  per isakson
      
      
 2018년 12월 11일
				
      편집: per isakson
      
      
 2018년 12월 11일
  
			Are  'ParamXX' or 'NameYY' supposed to be used as  field names ?
답변 (1개)
  Guillaume
      
      
 2018년 12월 11일
        "This one is very close to what I need. In final answer I need 182*1 double instead of 1*182 double"
Well that's trivially fixed with your existing code by transposing your vector, so by replacing:
S.(data{jj}) = [data{jj,2:end}];
by
S.(data{jj}) = [data{jj,2:end}]';
Or you could do this:
%demo data:  %Not sure why we bother about the first row since it's unused
data = [{'Description'}, compose('Name%02d', 1:182); 
        compose('Parm%02d', (1:20)'), num2cell(rand(20, 182))]
%conversion to structure
newdata = num2cell(cell2mat(data(2:end, 2:end))', 1);
S = cell2struct(newdata, data(2:end, 1), 2)
댓글 수: 0
이 질문은 마감되었습니다.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

