Loop to carry out calculation for pairs 1 and 2, then pairs 2 and 3 and so on.
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi,
I have two 8x1 matrices. One matrix is list of longitude coordinates (Final_Longitude_Values). The other matrix is the corresponding latitude coordinates (Final_Latitude_Values).
I want to calculate the distance between the first pair and the second pair, and then the second pair and the third pair, and so on until I have come to the end of each matrix.
I have written the following code in an attempt to automate this process:
{for j = 1:length(Final_Latitude_Values)
latlon1=[(Final_Latitude_Values(j)) (Final_Longitude_Values(j))];
latlon2=[(Final_Latitude_Values(j+1) (Final_Longitude_Values(j+1))];
end
[d1km d2km]=distance(latlon1,latlon2);
Segment_Distance = d2km}
However, the index exceeds the matrix dimensions, and I can't seem to figure out how to work around this issue. If anyone could correct my code it would be much appreciate.
Thanks
댓글 수: 0
채택된 답변
Torsten
2018년 8월 21일
Use
for j = 1:length(Final_Latitude_Values)-1
instead of
for j = 1:length(Final_Latitude_Values)
Best wishes
Torsten.
댓글 수: 0
추가 답변 (2개)
Fangjun Jiang
2018년 8월 21일
You have 8 locations thus 7 distances. When j is 8, Final_Latitude_Values(j+1) exceeds the matrix dimension.
Change the for-loop to
for j = 1:length(Final_Latitude_Values)-1
댓글 수: 0
BOB
2018년 8월 21일
댓글 수: 1
Torsten
2018년 8월 21일
I don't know if this is intended, but note that you only calculate the distance between the last two components of the vectors, namely
[(Final_Latitude_Values(j)) (Final_Longitude_Values(j))]
and
[(Final_Latitude_Values(j+1)) (Final_Longitude_Values(j+1))]
for
j = length(Final_Latitude_Values)-1.
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!