# Use equation in for loop

12 ビュー (過去 30 日間)
triztyme 2016 年 5 月 3 日
コメント済み: triztyme 2016 年 5 月 4 日
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 件のコメント表示 1 件の古いコメント非表示 1 件の古いコメント
triztyme 2016 年 5 月 4 日

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

サインインしてコメントする。

### 採用された回答

MHN 2016 年 5 月 4 日
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 件のコメント表示 なし非表示 なし
triztyme 2016 年 5 月 4 日
thank you! I am required to use a for loop, if it were up to me I would use your other example

サインインしてコメントする。

### その他の回答 (2 件)

Walter Roberson 2016 年 5 月 4 日
hint: x(m), x(m+1)
##### 1 件のコメント表示 なし非表示 なし
triztyme 2016 年 5 月 4 日

サインインしてコメントする。

CS Researcher 2016 年 5 月 4 日

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)));

サインインしてコメントする。

### カテゴリ

Find more on Loops and Conditional Statements in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!