I want to gather points in triangle and stokes

조회 수: 1 (최근 30일)
bil bbil
bil bbil 2014년 3월 23일
댓글: bil bbil 2014년 3월 23일
hello
*I have an array of 80 points
*want to gather points in triangle and the result stored in an array:
  • %angle
*A1 = atan2 (abs ((x2-x1) * (y3-y1) - (x3-x1) * (y2-y1)), ... (x2-x1) * (x3-x1) + (y2-y1) * (y3-y1));
*A2= atan2 (abs ((x1-x2) * (y3-y2) - (x3-x2) * (y1-y2)), ... (x1-x2) * (x3-x2) + (y1-y2) * (y3-y2));
*A3=...
  • %Distance:
  • d1 = norme (P2-P1);
  • d2 = norme (P3-P1);
  • d3 = norme (P3-P2);
*%
*I think 3 loop For
  댓글 수: 1
Roger Stafford
Roger Stafford 2014년 3월 23일
편집: Roger Stafford 2014년 3월 23일
I understand that you have correctly computed the inner angles and side lengths of a triangle from the coordinates of its three vertices. However, that is where my understanding ends. I am unable to extract a meaningful question from the wording "I want to gather points in triangle and stokes." Could you please elaborate on that? My crystal ball is rather cloudy this morning.

댓글을 달려면 로그인하십시오.

채택된 답변

Roger Stafford
Roger Stafford 2014년 3월 23일
@bil bbil: After consulting your prior question #122689, "how to store all the results in a table with index", it would appear that the triangle calculations are only an incidental part of your inquiry. What you seem to want to do is to store 80!/3!/77! = 82160 sets of results, each set consisting of perhaps nine quantities, in some kind of "table". That is one set for each possible combination of three different points as vertices of a triangle.
It is easy to fill a two-dimensional array with such results. It would have 82160 rows and, say, 9 columns. Your three nested for-loops can be used for this purpose.
T = zeros(82160,9); % <-- This is the big "table" array
k = 0; % k will be its row index
for i1 = 1:78
for i2 = i1+1:79
for i3 = i2+1:80
k = k + 1;
% Compute angles & sides for triangle indexed with i1, i2, and i3
T(k,:) = [i1,i2,i3,d1,d2,d3,A1,A2,A3]; % Store them in k-th row
end
end
end
That's the easy part. What you need in addition to this is some magic function that you can hand a set of indices i1, i2, i3, and access the corresponding row, k, in T. Of course the 'find' function could be used for that purpose, but it would be painfully slow for an array this large. There is a much faster way of deriving the proper row number, k, given i1, i2, & i3, but since all this is mere conjecture on my part, I will hold off constructing that "faster" function until you state definitely that this is indeed what you were really asking for in this question.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by