フィルターのクリア

Help about foor loops.

1 回表示 (過去 30 日間)
peri
peri 2011 年 10 月 19 日
Hey, i have a small problem with a program i am writing in an mandatory task.
I am suppose to find the maximum value of one elemt minus the other elemt in a row vector, and do this for each element.
so far i have done this:
a = [2 8 9 5 4 9 7 6];
for j = 2:8
c = max(a(j-1) , a(j));
disp = c
end
What i further wish, is to make a new vector consisting of each of these maximums elements. How would i do that?

採用された回答

Laura Proctor
Laura Proctor 2011 年 10 月 19 日
You can do this without using a FOR loop - keep it vectorized. I think that the following code achieves the results you're seeking:
c = max(a(1:end-1),a(2:end))

その他の回答 (1 件)

Steffen
Steffen 2011 年 11 月 1 日
The fast fix of your code (without removing the for loop)
c(j) = max(a(j-1) , a(j));
Inside the loop c will always be assigned the result of the last iteration of the loop. If you want to have a vector of the results you have to use indexing for the result vector as well.

カテゴリ

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