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

1 回表示 (過去 30 日間)
Sarah Sadeq
Sarah Sadeq 2016 年 12 月 13 日
コメント済み: Sarah Sadeq 2016 年 12 月 13 日
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

採用された回答

David Barry
David Barry 2016 年 12 月 13 日
編集済み: David Barry 2016 年 12 月 13 日
The length:
numel(unique(vec))
Just the numbers:
unique(vec);
  1 件のコメント
Sarah Sadeq
Sarah Sadeq 2016 年 12 月 13 日
hm, I tried it but it didn't work. I'll try again. Thank you!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePerformance and Memory についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by