extract the most repeated element of a cell array

3 次查看(过去 30 天)
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.

采纳的回答

KSSV
KSSV 2019-7-10
clc; clear all ;
A={[],[18],[14],[],[],[],[14],[],[14],[18]};
B = cell2mat(A)
[a,b]=hist(B,unique(B)) ;
[b' a']
  2 个评论
KSSV
KSSV 2019-7-10
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by