Error using * Too many input arguments.
조회 수: 3 (최근 30일)
이전 댓글 표시
Error using * Too many input arguments.
Error in triangle (line 9) ratio=c.Perimeter^2/(4*pi*c.Area);
I am getting the above error,I have binary image of triange, so i want use perimeter area ratio to detect the shape, but unfortunately i get this error. I don't know why.
댓글 수: 0
채택된 답변
Walter Roberson
2013년 12월 31일
Your "c" is a structure array, so c.Area is expanding to multiple arguments.
ratio = [c.Perimeter].^2 ./ (4 * pi * [c.Area]);
댓글 수: 2
Walter Roberson
2013년 12월 31일
When you have a structure array "c", then c.Area is the same as if you had written out
c(1).Area, c(2).Area, c(3).Area, ... c(end).Area
all as individual arguments to the function. When you use [c.Area] then this becomes
[c(1).Area, c(2).Area, c(3).Area, ... c(end).Area]
and so becomes the vector containing all of the various c(K).Area values.
When you are using regionprops, you get a separate structure array entry for each region that regionprops finds. If you get back (say) 3 areas, then the areas will not be stored as [c.Area(1), c.Area(2), c.Area(3)] and are instead stored as c(1).Area(1), c(2).Area(1), c(3).Area(1) -- three separate vectors, not a vector with three entries. Using [c.Area] puts all the entries together into a single vector.
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!