# Unique values in an array, with specific digits

8 views (last 30 days)
sushma sharma on 27 Sep 2016
Commented: Sean de Wolski on 29 Sep 2016
Hi, I have an array of 7 digit numbers. i want to count the number of occurrences of unique values starting with two digits, say, 12*****. How can I do that? What about if I want to calculate the frequency of unique values ending with two specific digits, say, *****12?
To calculate unique occurrences for all values, the following works:
a = unique(input)
output = [a,histc(input(:),a)]
Any suggestions would be appreciated! Thanks!
Sushma

sushma sharma on 27 Sep 2016
close, but not quite. while it lists the unique combinations of first and last digits, how can i get the frequency of each? e.g. count of numbers that begin with the digits 12 (12*****) and count of numbers ending with the digits 12 (e.g. *****12). any help would be appreciated! thank you!
sushma

#### 1 Comment

Sean de Wolski on 29 Sep 2016
You have to use all of the outputs from unique
[uv,~,idx] = unique(...)
n = accumarray(idx,1)
uv n

Sean de Wolski on 27 Sep 2016
Edited: Sean de Wolski on 27 Sep 2016
Starting in R2016b this is much easier with the string class.
x = [1234; 1256; 1334]
s = string(x)
unique(extractBefore(s,3)) % First two
unique(reverse(extractBefore(reverse(s),3))) % Last two
In older releases:
% First two
unique(cellfun(@(x)x(1:2),cellstr(num2str(x)),'uniformoutput',false))
% Last two
unique(cellfun(@(x)x(end-1:end),cellstr(num2str(x)),'uniformoutput',false))