Use equation in for loop

2 ビュー (過去 30 日間)
triztyme
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 件のコメント
Walter Roberson
Walter Roberson 2016 年 5 月 4 日
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 2016 年 5 月 4 日
編集済み: 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
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
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
Walter Roberson 2016 年 5 月 4 日
hint: x(m), x(m+1)
  1 件のコメント
triztyme
triztyme 2016 年 5 月 4 日
thank you for your input

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


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

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by