Import a .txt file with numbers and words
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I need to import a .txt file that with numbers and words. In particular I need the first two numbers next to every "POINT" and the first number after "PATH", how can I do this?
I tried to import the .txt file using "Import Data" but this operation is too slow.
Thank you.
3 Commenti
Stephen23
il 14 Dic 2017
@Dario Anghileri: we cannot load a screenshot, or import it in any useful way. Even if someone patiently copied all of that data then it is unlikely that they would get the correct whitespace characters.
If you want help then please upload a real data file by clicking the paperclip button.
Risposta accettata
YT
il 14 Dic 2017
Modificato: YT
il 14 Dic 2017
Here is my updated answer using delay.txt
clear all;
fid = fopen('delay.txt','r');
data = textscan(fid, '%s', 'Delimiter', '\n'); %read all data as string
data = data{1};
for i = 1:size(data,1)
nData{i,:} = strsplit(data{i},' '); %split data whitespace
if (mod(i,2)==1) %checks if uneven/POINT or even/PATH
nnData{i,1} = str2num(cell2mat(nData{i}(2))); %get POINT 1st number
nnData{i,2} = str2num(cell2mat(nData{i}(3))); %get POINT 2nd number
else
nnData{i,3} = str2num(cell2mat(nData{i}(2))); %get PATH 1st number
end
end
nnData = cell2mat(nnData); %make double matrix / removes empty rows
fclose(fid);
4 Commenti
YT
il 15 Dic 2017
Okay so I tried it again, now without looping and with the code you provided in your comment
tic
fid = fopen('delay_ant.txt', 'r');
C = textscan(fid, '%s%f%f%f');
fclose(fid);
C2 = C{2}; C2(isnan(C2)) = []; %removing NaN
C2p2 = C2(2:2:end); %saving even rows
C2(2:2:end) = []; %remove even row
C3 = C{3}; C3(isnan(C3)) = []; %removing NaN
C3(2:2:end) = []; %remove even row
finalMatrix = [C2(:,1) C3 C2p2]; %[point1, point2, path1]
toc %clocked 0.22s
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Large Files and Big Data in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!