How to remove rows with any string from matrix
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Aidan O'Farrell
am 25 Jun. 2014
Kommentiert: Aidan O'Farrell
am 25 Jun. 2014
Hello,
I'm trying to remove any rows that have any strings in them in my matric, for example:
name and other jibberish
1 0
0 1
0 2
another name and other words
0 3
1 0
other tosh
and change this to just:
1 0
0 1
0 2
0 3
1 0
so you can see, it doesn't matter what the string is, its not specific to what the letters in the string are, I just want it removed. Is there an easy way of doing this?
Thanks
3 Kommentare
Akzeptierte Antwort
Jos (10584)
am 25 Jun. 2014
Bearbeitet: Jos (10584)
am 25 Jun. 2014
Assuming that the rows are lines of a text file:
T = textread('data.txt','%s','delimiter','\n')
T2 = T(~cellfun(@(x) any(isletter(x)),T)) % still strings
VAL = str2num(char(T2)) % numbers
Weitere Antworten (1)
Azzi Abdelmalek
am 25 Jun. 2014
Bearbeitet: Azzi Abdelmalek
am 25 Jun. 2014
fid = fopen('file.txt');
res={};
while ~feof(fid)
res{end+1,1} =fgetl(fid);
end
fclose(fid);
res(cellfun(@(x) any(isletter(x)),res))=[]
out=cell2mat(cellfun(@str2num,res,'un',0))
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Import and Export 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!