I have a 2d array that I'm reading in that is 100x2. I have the following equation that needs to loop through and calculate starting at the next row
total=total+(y1+y2)*(x1-x2)
Here's what I've started with, I'm just not sure how to set it up
[nrows,ncols] = size(data);
for m=1:1:nrows
for n=1:1:ncols
total = total+

2 comentarios

Walter Roberson
Walter Roberson el 4 de Mayo de 2016
What are x1, x2, y1, y2? How do they relate to the content of the image? How do they relate to the row or column numbers?
triztyme
triztyme el 4 de Mayo de 2016
Editada: triztyme el 4 de Mayo de 2016
Here is a sample of the data
(x) (y)
0.000 /0.000
0.023 /64.792
0.072 /178.808
0.122 /213.286
0.172 /225.909
0.222 /224.443
.......
so it should go
total=toal+(0.000+64.792)*(.023-0.000)
then to the next row
total=total+(64.792+178.808)*(0.072-0.023)
and keep looping through all data

Iniciar sesión para comentar.

 Respuesta aceptada

MHN
MHN el 4 de Mayo de 2016

1 voto

data = rand(100,2); % just for an example
[nrows,ncols] = size(data);
total = 0;
for m=1:nrows-1
total = total+ (data(m,2)+data(m+1,2))*(data(m,1)+data(m+1,1));
end

1 comentario

triztyme
triztyme el 4 de Mayo de 2016
thank you! I am required to use a for loop, if it were up to me I would use your other example

Iniciar sesión para comentar.

Más respuestas (2)

Walter Roberson
Walter Roberson el 4 de Mayo de 2016

1 voto

hint: x(m), x(m+1)
CS Researcher
CS Researcher el 4 de Mayo de 2016
Editada: CS Researcher el 4 de Mayo de 2016

1 voto

You can avoid the for loop by:
data = rand(100,2); % just for an example
N = size(data,1);
total = sum((data(1:N-1,2) + data(2:N,2)) .* (data(1:N-1,1) + data(2:N,1)));

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 3 de Mayo de 2016

Comentada:

el 4 de Mayo de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by