How could I finish the for loop?

4 views (last 30 days)
Pingyang Li
Pingyang Li on 24 Jul 2018
Commented: Pingyang Li on 24 Jul 2018
I am writing a for loop. like this,
%
stations=[1 1 1 2 2 2 3 3 3];
stats=[1 2 3];
datapb=[];
for i=1:length(station(s))
[row,col]=find(stations(i)==stats(1));
dataps=max(datap(row));
datapb=[datapb;dataps];
end
[DEPTH, ia3, ic3] = unique(datapb,'stable');
%
I would like to obtain three DEPTH by change the stats from stats(1) to stats(3). How could I use two for loop to finish the calculation? Thank you very much in advance!
  2 Comments
Krithika A
Krithika A on 24 Jul 2018
I don't understand what you are trying to do. Can you elaborate on your aim?
Pingyang Li
Pingyang Li on 24 Jul 2018
When the stations = 1, there will be three depths, such as 100 m, 400 m and 660 m. I would like to find out the maximum. Similar to stations = 2 or 3. And then put all the three depth together in the original sequence. Could you understand this?

Sign in to comment.

Accepted Answer

Bob Thompson
Bob Thompson on 24 Jul 2018
First thing:
[row,col]=find(stations(i)==stats(1));
This only looks at a single value of stations, so it can only return a single value for row and col. This means that dataps=max(datap(row)); will return every value as max, because it is only comparing one value at a time.
Also, stations is a 1x9 array, so all row values will be 1.
You might try something more like this to get your logic and max values.
for k = 1:length(stats);
dataps = max(datap(stations==stats(k)));
datapb=[datapb;dataps];
end

More Answers (0)

Categories

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!