Help about foor loops.

2 次查看(过去 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 CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by