how to output a vector, when removing duplicates from a vector?
조회 수: 1 (최근 30일)
이전 댓글 표시
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
채택된 답변
David Barry
2016년 12월 13일
편집: David Barry
2016년 12월 13일
The length:
numel(unique(vec))
Just the numbers:
unique(vec);
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Performance and Memory에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!