Unique values in an array, with specific digits

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

 Respuesta aceptada

sushma sharma
sushma sharma el 27 de Sept. de 2016

0 votos

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 comentario

You have to use all of the outputs from unique
[uv,~,idx] = unique(...)
n = accumarray(idx,1)
uv n

Iniciar sesión para comentar.

Más respuestas (1)

Sean de Wolski
Sean de Wolski el 27 de Sept. de 2016
Editada: Sean de Wolski el 27 de Sept. de 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))

Categorías

Más información sobre Entering Commands en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 27 de Sept. de 2016

Comentada:

el 29 de Sept. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by