MATLAB Answers

replace duplicate value by 0 in matrix or vector

12 ビュー (過去 30 日間)
Mira le
Mira le 2019 年 10 月 15 日
コメント済み: Mira le 2019 年 10 月 21 日
How do we replace duplicate value by 0 in matrix or vector ?
for example
Input:
b = 1 2 1 3
Output::
b= 1 2 0 3
Thanks

  0 件のコメント

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

採用された回答

Andrei Bobrov
Andrei Bobrov 2019 年 10 月 15 日
編集済み: Andrei Bobrov 2019 年 10 月 15 日
b = [1 2 1 3];
[a,c] = unique(b,'first');
out = zeros(size(b));
out(c) = a;

  1 件のコメント

Mira le
Mira le 2019 年 10 月 21 日
thank you

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

その他の回答 (2 件)

Adam
Adam 2019 年 10 月 15 日
[C,ia] = unique( b );
b( setdiff( 1:numel(b), ia ) ) = 0;

  0 件のコメント

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


Jos (10584)
Jos (10584) 2019 年 10 月 15 日
% for small vectors:
b = [1 2 1 3 2 1 4 2]
b(sum(triu(b == b')) > 1) = 0

  0 件のコメント

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

製品

Community Treasure Hunt

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

Start Hunting!

Translated by