how to output a vector, when removing duplicates from a vector?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Sarah Sadeq
am 13 Dez. 2016
Kommentiert: Sarah Sadeq
am 13 Dez. 2016
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
0 Kommentare
Akzeptierte Antwort
David Barry
am 13 Dez. 2016
Bearbeitet: David Barry
am 13 Dez. 2016
The length:
numel(unique(vec))
Just the numbers:
unique(vec);
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Performance and Memory finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!