read each line of a text file and storage each into an array

11 visualizaciones (últimos 30 días)
carlos edurdo condori ochoa
carlos edurdo condori ochoa el 7 de Sept. de 2020
Respondida: Walter Roberson el 8 de Sept. de 2020
Greetings, I want to read the lines of text that have the words that contain SPARMS and save their information in an array, for example the line "SPARMS_VBE.IND.FREQ:" and the following is stored in an array1 = [10e6 100e6 5e6 150e6 500e6 50e6 600e6 40e9 100e6], the same for "SPARMS_VBE.IND.VCE" in an array2 = [0] and so on, so that for each row variable there is a particular vector.
Then each **** block ***** is stored in a cell so that you can distinguish between one block and another. Since there are other blocks
I have little time to achieve it and I am not an expert in matlab, I was trying with textscan but I do not know how to read by rows, I was seeing maybe I could do it with the readcell command but I have matlab 2017 and readcell was implemented in 2019, so I would have to install matlab 2020 so you can use readcell. I'm not really sure though. Please if anyone knows how to achieve it I will be very grateful.

Respuestas (2)

Mohammad Sami
Mohammad Sami el 8 de Sept. de 2020
The easiest way would be to read the entire file, then use string functions to extract what you need.
The following should would get you started.
fid = fopen('somefile.txt','r');
txt = fread(fid,'*char')';
txt = splitlines(txt);
astreisk = startsWith(txt,'****')
blockid = cumsum(astreisk); % assign block id to each row preceded by ****
% rest of your code. use startsWith to identify specific types rows
%

Walter Roberson
Walter Roberson el 8 de Sept. de 2020
S = fileread('TEST.txt');
sparm_lines = regexp(S, '^\s?SPARMS_.*$', 'lineanchors', 'dotexceptnewline', 'match');
This would break each SPARMS line into its own cell. It would not, however, break into blocks.
I had a look at the file, and it is not clear to me that you want the blocks to be delimited by the *** lines. The lines that end in :: look to me to be more like block delimiters.

Categorías

Más información sobre Tables en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by