Help with iterations over large file.

9 visualizaciones (últimos 30 días)
gero pulido
gero pulido el 11 de Dic. de 2023
Comentada: Dyuman Joshi el 12 de Dic. de 2023
Hello everyone, I have a huge ascii.txt wind file with the following format.
time = 0 hour
2 3 4 5 6 7
0 9 8 7 6 5
7 6 5 4 3 2
9 8 7 6 5 4
time = 3 hour
2 3 4 5 6 7
0 9 8 7 6 5
7 6 5 4 3 2
9 8 7 6 5 4
The thing is that I need to flip the rows from each block between hours, like this
time = 0 hour
9 8 7 6 5 4
7 6 5 4 3 2
0 9 8 7 6 5
2 3 4 5 6 7
time = 3 hour
9 8 7 6 5 4
7 6 5 4 3 2
0 9 8 7 6 5
2 3 4 5 6 7
I can do this for one block by
X = readlines('xwind.txt');
Y = X(2:5);
Y = flip(Y);
But I couldn’t write the loop for the entire file (4865x1 string).
Any help would be much appreciated.

Respuesta aceptada

Dyuman Joshi
Dyuman Joshi el 11 de Dic. de 2023
If the format of the data is homogenous through the file, try this -
in = readlines('ascii.txt')
in = 10×1 string array
"time = 0 hour" "2 3 4 5 6 7 " "0 9 8 7 6 5" "7 6 5 4 3 2" "9 8 7 6 5 4" "time = 3 hour" "2 3 4 5 6 7 " "0 9 8 7 6 5" "7 6 5 4 3 2" "9 8 7 6 5 4"
for k=2:5:size(in,1)
in(k:k+3,:) = flipud(in(k:k+3,:));
end
in
in = 10×1 string array
"time = 0 hour" "9 8 7 6 5 4" "7 6 5 4 3 2" "0 9 8 7 6 5" "2 3 4 5 6 7 " "time = 3 hour" "9 8 7 6 5 4" "7 6 5 4 3 2" "0 9 8 7 6 5" "2 3 4 5 6 7 "
  2 comentarios
gero pulido
gero pulido el 12 de Dic. de 2023
Thank you! It worked perfectly
Dyuman Joshi
Dyuman Joshi el 12 de Dic. de 2023
You're welcome!

Iniciar sesión para comentar.

Más respuestas (1)

Mathieu NOE
Mathieu NOE el 11 de Dic. de 2023
hello
try this
I choosed to store each Y array into a cell
D=readlines('data.txt'); % read as string array
[eof] = size(D,1); % last row number (end of file)
ixP1=find(contains(D,'time')); % find the "time" line
ixP1=[ixP1 ; eof]; % add end of file line number
for k=1:numel(ixP1)-1
ind = ixP1(k)+1:ixP1(k+1)-1;
Y = str2num(char(D(ind)));
Y = flip(Y);
out{k} = Y; % store Y flipped in cell array
end

Categorías

Más información sobre File Operations 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