How to find minimum from a group and index at which minimum value is obtained ?

2 Ansichten (letzte 30 Tage)
Hello all,
I have a matrix Engine_data_temp whose 5th column contains values of time (eg: 1;1;1;2;2...600) and 10th column contains values of fuel consumption. I am currently using code shown below to find unique value of time and minimum value of fuel consumed at that time:
(As suggested my one of the community member)
[uniqueT,~,jk]=unique(Engine_data_temp(:,5));
minFc=accumarray(jk,Engine_data_temp(:,10),[],@min);
I also need to find the index at which min values of fuel consumption are being selected at each unique time instances because I need this index to access other columns in matrix Engine_data_temp.
Thank you!
  1 Kommentar
Dhaval Lodaya
Dhaval Lodaya am 3 Jul. 2016
I am looking for a method which does not use for loop for this as it slows down my code. I need to obtain index by vectorization or any other method that is fast.
Thanks in advance!

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 3 Jul. 2016
Create a small function
function r = min_and_idx(x)
[minx, minidx] = min(x);
r = {minx, minidx};
Then you use
minFc = accumarray(jk, Engine_data_temp(:,10), [], @min_and_idx, {});
The result will be a cell array in which some entries might be empty, but if they are not empty then they will be a cell with minimum value and the index of the value relative to the locations that share the same jk value.
  3 Kommentare
Walter Roberson
Walter Roberson am 4 Jul. 2016
function r = min_and_idx(x)
[minx, minidx] = min(x);
r = {[minx, minidx]};
Dhaval Lodaya
Dhaval Lodaya am 4 Jul. 2016
Bearbeitet: Dhaval Lodaya am 4 Jul. 2016
Thanks a lot! This works perfectly fine now and I liked the cell approach.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Entering Commands finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by