2017-02-09 1 views
0

signals이라는 3x2 셀 배열이 있습니다. 모든 셀은 정수로 가득 찬 8x6xN 배열을 포함합니다. 모든 행을 한 행 아래로 이동하고 NaN으로 첫 행을 덮어 쓰려고합니다. Howevery, 저는 색인 생성과 관련하여 정확한 구문을 고민하고 있습니다. 다음과 같이 하나의 특정 셀을 조작 할 수 있습니다.셀 배열 작업시 인덱싱

signals{1,1}(2:end, :) = signals{1,1}(1:end-1, :); 
signals{1,1}(1,:) = NaN; 

이 조작을 전체 셀 배열에 어떻게 적용 할 수 있습니까? 기본적으로 다음과 같은 것을 찾고 있습니다.

답변

1

셀 배열의 각 요소를 반복하고 각 요소에 대해 연산을 수행해야합니다.

for k = 1:numel(signals) 
    signals{k}(2:end, :) = signals{k}(1:end-1, :); 
    signals{k}(1,:) = NaN; 
end 
+0

루프를 사용하지 않고도이 문제를 해결할 수있는 방법이 있습니까? 'signals' 행렬이 상당히 커질 수 있기 때문에 속도면에서 가장 효율적인 방법을 찾고 있습니다. – Andi

+0

@Andi 아니요. JIT 가속으로 인해 이와 같은 루프를 사용하면 성능이 저하 될 수 있습니다. 또한 실제로 성능을 원할 경우 가능한 경우 셀 배열보다는 다차원 배열을 사용합니다. – Suever