How to select multiple rows from an array and apply some operation iteratively

7 vues (au cours des 30 derniers jours)
This is an array with 324 Rows and 3 Columns. I want to select patch of 3 rows as (Row1= P1, Row2= P2 and Row3= P3), then apply some operation and then select next three rows as (Row4= P4, Row5= P5 and Row6= P6) apply the same operation, and so on........... Finally I want to take the sum of all the individual operations applied.
I assume that I should use for loop to get this operation done, but I'm confused!!!!!
For more assistance with the question: Actually P1, P2 and P3 will be used as vertices coordinated of a triangle, and I want to calculate the area of all triangles.
The function I am using to find area is: Triangle Area and Angles

Réponse acceptée

Matt J
Matt J le 3 Sep 2021
Modifié(e) : Matt J le 3 Sep 2021
Well, the efficient way to do the area calculation specifically is,
A=T(1:3:end,:).';
B=T(2:3:end,:).';
C=T(3:3:end,:).';
Areas=abs(cross(B-A,C-A))/2;
To do general operations on blocks of 3 rows, you could use mat2tiles from,
out = cellfun(@triangle_areas, mat2tiles(T,[3,3]) )

Plus de réponses (0)

Catégories

En savoir plus sur Lighting, Transparency, and Shading dans Help Center et File Exchange

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by