2010-08-11 6 views

답변

74

목록에서 요소를 직접 반복 할 수 있습니다. 현재 작업중인 요소를 알 필요가없는 경우 유용 할 수 있습니다.

따라서 당신은 list의 컬럼을 통해 matlab에 반복은, list가 NX1 벡터 인 경우, 그래서 당신이 그것을 바꾸어 할 수

for elm = list 
%# do something with the element 
end 

노트를 작성할 수 있습니다.

+0

또한 포함하는 요소의 값을 변경하려는 경우 좋지 않음 – greg121

+4

list가 열 또는 행 벡터인지 여부를 모르는 경우 elm = 명부(:)'; % ...; end'. '(:) '조합은 행렬에서도 행 벡터를 생성하므로주의해서 처리하십시오. – JaBe

+0

당신은'(:). '을 의미합니까? 그렇지 않으면 조인 연산자 대신 복소 공액 연산자를 사용하고 있습니다. –

28
for i=1:length(list) 
    elm = list(i); 
    //do something with elm. 
5

matlab에서 많은 기능을 사용하면 전혀 반복 할 필요가 없습니다. 매트랩

m = [1:numel(list)]'; 
elm = list.*m; 

벡터화 알고리즘이 훨씬 빠르게 일반적이다 :이리스트에서의 위치가 예를 들면

는 승산한다.

2

각 요소에 함수를 적용하고 출력 배열에 결과를 저장하려는 경우 arrayfun을 사용할 수 있습니다.

대부분의 작업에서 MATLAB 및 vectorise your code instead에서 루프를 피하는 것이 좋습니다.

관련 문제