A command like "unique" for matrices?

3 次查看(过去 30 天)
Hi guys,
Is there any command like "unique" for matrices?
I have a major matrice (mother) , and that involve few minor matrices, some of are repeated randomly
i'm looking for a command for delete repeated ones and do something like unique ,
anybody knows how?
  3 个评论
Andrei Bobrov
Andrei Bobrov 2019-4-23
Please post an example of your matrix and what you want to receive.
Amy Hs
Amy Hs 2019-4-23
thanks for your reply
see,
we have 3 matrices,
A=[1;2;3] ; B=[1;2;3] ; C=[4;5;6];
all of them are in another matrice (call it R)
R={A;B;C}
as you see A & B 's first column are the same,
i want to delete one of them (A or B) and the result must be like below:
R={A;C}

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2019-4-23
编辑:Stephen23 2019-4-23
A general solution that does not concatenate the data and works for any size arrays:
% Fake data:
A = [1;2;3];
B = [1;2;3];
C = [4;5;6];
R = {A;B;C}
% Method:
N = numel(R);
X = false(1,N);
for ii=2:N
Y=false;
for jj=1:ii-1
Y = Y || isequal(R{ii},R{jj});
end
X(ii) = Y;
end
R(X) = []

更多回答(1 个)

Andrei Bobrov
Andrei Bobrov 2019-4-23
A=[1;2;3];
C=[4;5;6];
M = [repmat(A,2,1);C];
out = reshape(unique(reshape(M,3,[])','rows','stable')',[],1);

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

产品


版本

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by