2011-03-04 9 views
1

는 I는 각 벡터의 번호를 포함하는 구조체 '셀'의 2 차원 배열을 가지고MATLAB : 구조체 (벡터 포함)를 3D 배열에 2 차원 배열로?

cell(1,1).U = [1 2 3]; 
cell(1,2).U = [4 5 6]; 
cell(2,1).U = [7 8 9]; 
cell(2,2).U = [0 1 2]; 

I는 3-D 어레이로 데이터를 추출하고 싶은 A (I, J, K) .

cell2mat(ans) 

결과 : 셀 스타일 추출 사용

는 내용이있는, 따라서

>> {cell.U} 
ans = {[cell(1,1).U] [cell(1,2).U] [cell(2,1).U] [cell(2,2).U]} 

되며 같이) (cell2mat를 이용한 행렬이 변환 × 3 셀을 반환 3x4 배열

인덱스 i와 j가 보존되도록 2x2x3 배열을 사용하는 것이 이상적입니다. 이 작업을 수행하기위한 어떤 방법 (루핑 부족)이 있습니까?

답변

1

CATRESHAPE을 사용하십시오. 또한 내장 변수이기 때문에 변수 cell을 호출하지 마십시오.

>> c(1,1).U = [1 2 3]; 
c(1,2).U = [4 5 6]; 
c(2,1).U = [7 8 9]; 
c(2,2).U = [0 1 2]; 


>> out = cat(1,c.U) 
>> out = reshape(out,2,2,3) 
out(:,:,1) = 
    1  4 
    7  0 
out(:,:,2) = 
    2  5 
    8  1 
out(:,:,3) = 
    3  6 
    9  2 
관련 문제