Finding the double array with most number of elements in a cell.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Kevin Akash Rajasekaran
am 13 Jul. 2021
Kommentiert: Image Analyst
am 13 Jul. 2021
Hey all! I have a variable called "spikes" which is a 65X64 cell. Each cell consists of a double array woth varying number of elements in it as shown in the screenshot below. Now, for a particular row, I want to retrieve which double array has the most number of elements in it. What might be the best way to go about this? Thanks in advance!
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 13 Jul. 2021
Did you try just a brute force approach? Untested code (because you forgot to actually attach your variable in a mat file).
[rows, columns] = size(spikes);
numElements = zeros(rows, columns);
for col = 1 : columns
for row = 1 : rows
thisCellsContents = spikes(row, col);
numElements(row, col) = numel(thisCellsContents);
end
end
mostElements = max(numElements(:));
% Find out what row and column it appears at (may be more than 1 cell).
[maxRowIndexes, maxColIndexes] = numElements == mostElements;
It's straightforward and intuitive. But I'm sure someone will come up with a shorter but more cryptic way of using cellfun() if you'd rather do it that way.
2 Kommentare
Image Analyst
am 13 Jul. 2021
Sorry, should be
[maxRowIndexes, maxColIndexes] = find(numElements == mostElements);
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Type Conversion 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!