Finding the double array with most number of elements in a cell.
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Kevin Akash Rajasekaran
il 13 Lug 2021
Commentato: Image Analyst
il 13 Lug 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!
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/682613/image.png)
0 Commenti
Risposta accettata
Image Analyst
il 13 Lug 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 Commenti
Image Analyst
il 13 Lug 2021
Sorry, should be
[maxRowIndexes, maxColIndexes] = find(numElements == mostElements);
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Data Type Conversion in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!