Reading a text file
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hey everyone!
I have a question regarding textscan[]; command.
I have a file and I want to read it, but somehow I can't get it to read the I want to. The file looks like this :
CsF 33 734824
Al 22 734824
NaCl 77 734824
This is a mere sample and it updates now and then but that's not important. I want it to read in a way that each cell has an information about change. The change consists of element, mass and MatLab date number. So in this case a cell array would be "CsF 33 734824" or {3x1}. I have only been able to read it nicely, but the problem is that all three informations get put into one cell.
So I have whitespace and newline separators.
fid = fopen('Spojine.txt');
R = textscan(fid, '%s', 'delimiter', '\n');
fclose(fid);
If someone would be nice enough to assist my code, that would be lovely! :)
0 commentaires
Réponse acceptée
Fangjun Jiang
le 21 Nov 2011
I recommend Jan's approach because it puts string into sting and numerical to numerical. But if you want it, you can use reshape().
fid = fopen('test.txt');
R = textscan(fid, '%s');
S=reshape(R{:},3,[]).';
fclose(fid);
0 commentaires
Plus de réponses (2)
Jan
le 21 Nov 2011
fid = fopen('Spojine.txt');
R = textscan(fid, '%s %f %f', 'delimiter', ' ')
fclose(fid);
Then the names are found in the cell string R{1}, and the values as vectors in R{2} and R{3}.
2 commentaires
Jan
le 21 Nov 2011
@Slobodan: Waht about posting exactly, what you want as output? The "exact opposite" is not well defined.
Slobodan Djordjevi?
le 21 Nov 2011
1 commentaire
Fangjun Jiang
le 21 Nov 2011
Or you could avoid using reshape,
%%
fid = fopen('test.txt');
R = textscan(fid, '%s %s %s','collectoutput',true);
fclose(fid);
Voir également
Catégories
En savoir plus sur LaTeX dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!