Delete values from different columns depending on a value from a specific column
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Maria
am 28 Apr. 2014
Kommentiert: Star Strider
am 18 Mai 2014
I have a double variable with 3 columns. Sometimes, in the second column I obtain the value zero. In case it happens I want to completely erase that line. For instance:
12346 67 89
1245 0 765
56 0 99
19862 8 675
What I would like to get:
12346 67 89
19862 8 675
Thanks in advance for your help.
0 Kommentare
Akzeptierte Antwort
Star Strider
am 28 Apr. 2014
This works:
a = [12346 67 89; 1245 0 765; 56 0 99; 19862 8 675];
a((a(:,2) == 0),:) = [];
It uses ‘logical indexing’ to eliminate the entire row with a zero in the second column.
6 Kommentare
Star Strider
am 18 Mai 2014
Here you go:
MCA = {1 2 3; 4 'ab' 6; 7 8 'bc'; 4 3 8; 7 2 1; 'yz' 10 pi}; % Mixed Cell Array
FS = cellfun(@ischar,MCA); % Find string elements
SR = find(sum(FS,2)); % Find rows containing string elements
NSR = setdiff(1:size(MCA,1), SR)'; % Find rows NOT containing string elements
MCAnew = MCA(NSR,:) % Create new array
Have fun!
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Startup and Shutdown 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!