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 commentaires

Krithika A
Krithika A le 24 Juil 2018
I don't understand what you are trying to do. Can you elaborate on your aim?
Pingyang Li
Pingyang Li le 24 Juil 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?

Connectez-vous pour commenter.

 Réponse acceptée

Bob Thompson
Bob Thompson le 24 Juil 2018

0 votes

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

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by