Filter löschen
Filter löschen

delete duplicated rows, (with saving some data)

1 Ansicht (letzte 30 Tage)
Amr Hashem
Amr Hashem am 16 Mai 2015
Kommentiert: Amr Hashem am 16 Mai 2015
i have this table (size:8*2): ( 1st column has numbers some of them is duplicated)
434846 x
434846 y
434850 f
434854 s
434859 A
434859 B
434859 C
434862 N
i want to delete the duplicated row but save the (2th column & or 3rd) in the origin number to form a table (size:5*3) like this:
434846 x y
434850 f
434854 s
434859 A B C
434862 N
how i can do this?

Akzeptierte Antwort

Star Strider
Star Strider am 16 Mai 2015
Bearbeitet: Star Strider am 16 Mai 2015
This works:
A = {434846 'x'
434846 'y'
434850 'f'
434854 's'
434859 'A'
434859 'B'
434859 'C'
434862 'N'};
%
A1 = cell2mat(A(:,1));
[Au,ia,ic] = unique(A1);
for k1 = 1:size(Au,1)
A2{k1,:} = {Au(k1) A(k1==ic,2)};
end
EDIT — Print loop for ‘A2’:
for k1 = 1:size(A2,1)
fprintf(1, ['\n%d\t' repmat('%s ',1, length(A2{k1}{2}))], A2{k1}{1}, char(A2{k1}{2}))
end
fprintf(1, '\n')
produces:
434846 xy
434850 f
434854 s
434859 ABC
434862 N
  1 Kommentar
Amr Hashem
Amr Hashem am 16 Mai 2015
thank you
it works
but it put the duplicated text over eachother
it gives me:
434846 CCOOMMPPLLAAIINNAANNTT AALLLLEEGGEEDD TTHHAATT
434850 COMPLAINANT ALLEGED THAT DURING A ROUTINE SHIFT CHECK BY A
434854 COMPLAINANT ALLEGED THAT DURING A ROUTINE SHIFT CHECK BY A
434859 CVAOECMRCPIELFSAISIE NDPA ONRRTET P AOBLRRLTOGEKEDED N M.TA .
434862 COMPLAINANT ALLEGED THAT
no 1,3 had duplicated texts
how i can seperate the text to appear like this ?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Tables finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by