Use equation in for loop

30 views (last 30 days)
triztyme
triztyme on 3 May 2016
Commented: triztyme on 4 May 2016
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 Comments
triztyme
triztyme on 4 May 2016
Edited: triztyme on 4 May 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

Sign in to comment.

Accepted Answer

MHN
MHN on 4 May 2016
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 Comment
triztyme
triztyme on 4 May 2016
thank you! I am required to use a for loop, if it were up to me I would use your other example

Sign in to comment.

More Answers (2)

Walter Roberson
Walter Roberson on 4 May 2016
hint: x(m), x(m+1)
  1 Comment
triztyme
triztyme on 4 May 2016
thank you for your input

Sign in to comment.


CS Researcher
CS Researcher on 4 May 2016
Edited: CS Researcher on 4 May 2016
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)));

Community Treasure Hunt

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

Start Hunting!

Translated by