How to merge multiple xyz files into 1 large array
    조회 수: 11 (최근 30일)
  
       이전 댓글 표시
    
I have a set of 501 XYZ files which I load in as
for k = 1:501
    % AIS SEC data
    AIS_SEC{k} = importdata(['AIS_SEC(' num2str(k) ').xyz']);
end
This generates an 1x501 cell array in which all data are stored (see attachment). How can I merge all these data to have 1 large XYZ file?
For example, to concentrate X data, I tried:
for k = 1:501
    my_field = sprintf('X%d', k);
    variable.(my_field) = ([AIS_SEC{1,k}.data(:,1)]);
end
BUT: Dot indexing is not supported for variables of this type.
Thanks!
댓글 수: 0
답변 (1개)
  meghannmarie
      
 2019년 10월 21일
        Not all the cells in AIS_SEC are structures. For example AIS_SEC{1,33} is a cell array with a string in it.
You can skip those cells:
for k = 1:501
    my_field = sprintf('X%d',k);
    x = AIS_SEC{1,k};
    if isstruct(x)
        variable.(my_field) = ([x.data(:,1)]);
    end
end
댓글 수: 0
참고 항목
카테고리
				Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

