how to output a vector, when removing duplicates from a vector?

1 visualización (últimos 30 días)
Hello, could someone help me with this question (it's just a practice problem for a test, not graded) I'd appreciate the help on this question, but instead of outputing the length, how could I output a vector of those numbers?
Question:
Given a sorted vector/array, write a function removeDuplicates in place such that each element in the array appears only onceand return the new length.
You cannot allocate extra space for another vector/array. The removal of elements should be done in place with constant memory.
For example, Given an input array vec = [4 5 5], your function should return 2.
my code:
function vec = removeDuplicates(n) h = zeros(1,numel(n)); for i = 1:numel(n)-1 for j = (i+1):numel(n) if n(j)==n(i) h(j)=1; end end end n(h==1)=[]; vec = numel(n); end

Respuesta aceptada

David Barry
David Barry el 13 de Dic. de 2016
Editada: David Barry el 13 de Dic. de 2016
The length:
numel(unique(vec))
Just the numbers:
unique(vec);

Más respuestas (0)

Categorías

Más información sobre Performance and Memory en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by