Estimating the perimeter of irregular shape
조회 수: 3 (최근 30일)
이전 댓글 표시
Please, how can I estimate the perimeter of the shape in this picture, given the x and y coordinates of all the grid points of the geometry. I need a matlab code that will give me a good estimation of the perimeter. Thank you so much.
댓글 수: 0
채택된 답변
Nicole Peltier
2018년 9월 22일
My answer assumes that the starting point is the first and last item in the x and y vectors, so if that's not your case, you'll have to add the first point to the end.
x_diff = diff(x);
y_diff = diff(y);
segment_lengths = sqrt(x_diff.^2+y_diff.^2);
perimeter = sum(segment_lengths);
This could be cut down to one line of code, but I wrote it out so you can see each step. You calculate the differences in x and y between each point. The length of each line segment can be calculated according to the Pythagorean theorem (x_diff^2 + y_diff^2 = segment_length^2). The perimeter is the sum of the line segment lengths.
If you're curious, this is how the same code would look when condensed to one line:
perimeter = sum(sqrt(diff(x).^2+diff(y).^2));
Hope this helps!
댓글 수: 1
Image Analyst
2018년 9월 22일
If you also want to include the length from the last point to the first point, you'll need to tack that on:
x2 = [x, x(1)];
y2 = [y, y(1)];
x_diff = diff(x2);
y_diff = diff(y2);
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Mathematics and Optimization에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!