2010-07-07 2 views
-2

가능한 중복 :
Matlab - building an array while looping
Matrix of unknown length in MATLAB?루프에 의해 생성 된 값에서 MATLAB에서 행렬을 구축

당신은 어떻게 함께를 형성하기 위해 "A"모든 값을 넣을까요 벡터?

for i=1:3 
    a=2+i 
end 

또한이 어쩌면 스타일의 문제입니다하지만 위의 예 하나 for 루프의 종료 후 세미콜론을 넣어 않을 때, 또한 첫 번째 행 다음에 세미콜론을 넣어 적절한입니까?

+0

이 단순화 된 예와 실제로 for-loop에있는 것 같습니다. 그렇지 않다면 모든 것을 한 줄로 벡터화 할 수 있습니다 :'a = 2 + (1 : 3); – groovingandi

+0

중복 : http://stackoverflow.com/questions/2480933/matlab-building-an-array-while- 루핑, http://stackoverflow.com/questions/1548116/matrix-of-unknown-length-in-matlab – gnovice

답변

0

는이 같은 a에 색인을 필요

for ii=1:3 
    a(ii) = 2+ii; 
end 

내가와 충돌 피하기 위해 루프 변수로 ii를 사용하는 것을 선호 MATLAB의 내장 i. 당신이 크기를 알고 있다면 당신은 또한과 같이, 루프가 시작되기 전에 a을 미리 할당해야합니다

N = 100; 
a = zeros(1,N); 
for ii=1:N 
    a(ii) = 2 + ii; 
end 

개인적으로, 나는 한 줄 FOR 루프를 작성하는 경우를 제외하고 for ii=1:3 부분 이후에 문장 부호를 넣어 결코 그래서 같은 :

for ii=1:N, a(ii) = 2 + ii; end 
0

참고 같은 더 효율적이를 구성 할 수 있습니다 :

a=1:3; 
a=a+2; 

첫 번째 라인 a를 ssigns a은 벡터 (1,2,3)이되고 두 번째 줄은 모든 요소에 2을 추가합니다.

"효율성"은 그러한 작은 벡터에서는별로 중요하지 않지만, 일반적으로 더 많이 생각하면 익숙해지면 훨씬 더 나은 마일리지를 얻을 수 있습니다.

관련 문제