find and store the index value of maximum or minimum value of cell array

4 views (last 30 days)
i have cell of size 613x1 and each cell has 200x1 column in it . i want to find out the index location of maximum and minimum of each column in cell and store it in different vector. further i want to split the cell based on these index location.

Answers (2)

Simon Chan
Simon Chan on 3 Oct 2022
[~,idxMax]=cellfun(@max,yourCell); % Index for maximum
[~,idxMin]=cellfun(@min,yourCell); % Index for minimum

Davide Masiello
Davide Masiello on 3 Oct 2022
Edited: Davide Masiello on 3 Oct 2022
Example
for row = 1:613
yourcellarray(row,1) = {randi(100,200,1)};
end
yourcellarray
yourcellarray = 613×1 cell array
{200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double} {200×1 double}
yourcellarray{1}
ans = 200×1
49 86 95 78 37 36 99 4 67 13
Above is just an example of the type of cell array you have described. Now, to find the index of the maximum and minimum for each cell, you just need to do
[~,idxMax] = cellfun(@max,yourcellarray)
idxMax = 613×1
7 93 4 40 55 41 58 50 106 28
[~,idxMin] = cellfun(@min,yourcellarray)
idxMin = 613×1
22 45 50 62 167 71 57 170 17 91
Regarding splitting the cell array based on the index of the maximum you need to give more info.

Categories

Find more on Cell Arrays in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!