extract the most repeated element of a cell array
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
A={[],[18],[14],[],[],[],[14],[],[14],[18]};
I want to get most repeated element in A, (except nan).
result should be
B=14
for this reason I use this code.
B=mode(cell2mat(A));
The problem is that in some of iteration in For loop, A changes to A={[],[],[],[],[]} (A changes in each loop)
So, when I used above code, give me this warning
Warning: MODE of a 0-by-0 matrix is NaN; result was an empty matrix in
previous releases.
> In mode (line 79)
I tried to use this code, but program stops it some iteration and I need to click Enter key.
if ~isnan(cell2mat(outlier_test))
B=mode(cell2mat(A));
end
It means that if I omit above code, my program runs without any pressing on Enter key.
So, I do not know how to fix it.
0 Kommentare
Akzeptierte Antwort
KSSV
am 10 Jul. 2019
clc; clear all ;
A={[],[18],[14],[],[],[],[14],[],[14],[18]};
B = cell2mat(A)
[a,b]=hist(B,unique(B)) ;
[b' a']
2 Kommentare
KSSV
am 10 Jul. 2019
14 3
18 2
The above says 14 repeated for 3 times; 18 repeated for 2 times. If you want the maximum repeated one:
b(find(max(a)))
Yes thats fine.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical 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!