2011-07-05 2 views
2

한다고 가정 내가 벡터 a=[1;2;2] 내가 ith+1 값으로의 ith 행의 각 값을 deviding 벡터 b=[1/2;1;2]을 만들려면이, 마지막 값이 할 수있는 MATLAB에서의 다음 행 값 벡터의 각 행을 나눌 수 있습니다 무엇이든 나누어지기 때문에 나는 그렇게합니다. 간단한 코드를 만들었지 만 다음과 같은 오류 메시지가 나타납니다. "인덱스가 행렬 크기를 초과합니다", 그래서 당신의 도움이 필요합니다.어떻게

b=a./[a(2:end);1]; 

꽤하지 않습니다하지만 그것은 작동 예제 코드

a=rand(3,1); 
for i=1:length(a) 
    b(i)=a(i)/a(i+1) 
end 

덕분에 당신의 도움

답변

4

에 대한 많은 당신은 시도 할 수 있습니다.

"색인은 매트릭스 크기를 초과합니다"라는 오류 메시지는이 요소가 없기 때문에 i = 길이 (a) 일 때 (i + 1)을 참조하려고했기 때문에 발생합니다.

+3

또는'a (1 : end-1) ./a (2 : end)'. 꽤 많든 적든간에 일반적으로 벡터화 된 솔루션이 더 좋습니다. – abcd

+0

고마워, 잘 작동 해. –