-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathminnival.m
55 lines (42 loc) · 814 Bytes
/
minnival.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
function minNum = minnival(v)
% Retruns the minimum number of identical values in a vector.
%
% DETAILS:
% Infs, -Infs and NaNs are automatically ignored.
%
% USAGE:
% minNum = minnival(v)
%
% INPUT:
% v: vector of numbers.
%
% OUTPUT:
% minNum: the minimum number of identical values in v.
%% Parse input
p = inputParser;
addRequired(p,'v',@isvector);
parse(p,v);
v = p.Results.v;
%%
% Converting v to row vector if it was colum.
if iscolumn(v)
v = v';
end
% Removing Infs, -Infs and NaNs
v = v(isfinite(v));
u = unique(v);
if numel(u) == numel(v)
minNum = 1;
return;
elseif numel(u) == 1
minNum = numel(v);
return;
end
minNum = numel(v);
for i = 1:numel(u)
num = sum(v == u(i));
if num < minNum
minNum = num;
end
end
end