Effacer les filtres
Effacer les filtres

extracting data from text file

4 vues (au cours des 30 derniers jours)
shru s
shru s le 22 Juin 2017
Modifié(e) : dpb le 22 Juin 2017
I have a text file which consists of only numbers in the form of an array. I wish to create a for loop which will extract first 100 digits for the first loop, next 100 digits for the second loop. Could anyone help me please?
  5 commentaires
alice
alice le 22 Juin 2017
Modifié(e) : alice le 22 Juin 2017
You can do it in a simple way opening the file with fopen, reading all you want to read with textscan and then closing it with fclose. See doc of textscan: www.mathworks.com/help/matlab/ref/textscan.html
Stephen23
Stephen23 le 22 Juin 2017
Modifié(e) : Stephen23 le 22 Juin 2017
Using textscan would require constructing a rather large format string. If all of the data is numeric then much simpler would be to use csvread or dlmread. Looping one line-at-a-time would not be very efficient.

Connectez-vous pour commenter.

Réponses (1)

dpb
dpb le 22 Juin 2017
Modifié(e) : dpb le 22 Juin 2017
>> 27*3500*8/1024/1024
ans =
0.7210 MB
>>
Isn't all that big by today's standards. Just read the file and do whatever as Stephen suggested.
x=textread('yourfile','');
For the base case; adjust for delimiter, etc., as required if required (we aren't given those details).
textread works for such simple files easier than textscan as it
  1. Uses the filename rather than needing fopen and file handle,
  2. returns double array be default where a cell array is unneeded overhead
  3. the empty format string(*) returns the array in the shape as in the file as number of fields per record so don't have to count delimiters or know the number a priori.
() In fairness, this is a feature in |*textscan|, too, although the documentation of it while extremely valuable is getting harder to find with each and every release it seems.

Community Treasure Hunt

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

Start Hunting!

Translated by