To remove the repeated number
1 回表示 (過去 30 日間)
古いコメントを表示
i have a matrix [1 2 2 2 3 4 5] and i want to get the result has [1 2 3 4] by replacing the repeated 2 by the single number.
回答 (3 件)
Brian B
2013 年 2 月 7 日
Use
unique([1 2 2 2 3 4 5])
Note that this will also sort the elements.
-B
0 件のコメント
Andrei Bobrov
2013 年 2 月 7 日
% without sorting array
m = randi(5,1,10);
[~,ii] = sort(m); % for Jan's solution
jj = [true,diff(m(ii))~=0];
out1 = m(sort(ii(jj)));
out2 = unique(m,'stable'); % in R2012a and later
[u,b] = unique(m,'first'); % old releases
[~,ii] = sort(b);
out3 = u(ii);
1 件のコメント
Jan
2013 年 2 月 7 日
No sorting, considering only neighboring elements such that e.g. [1,2,1] is not altered:
m = [1 2 2 2 3 4 5];
u = m([true, diff(m) ~= 0]);
You see, there are many different solutions, because your problem is not defined exactly: Sorting, not neighboring repetitions, ...
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Shifting and Sorting Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!