How to replace some lines in a file with lines of another file?
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have a file1 with 162000 lines and i want to replace some of them. I also have another file2 with 1600 lines that i will use to replace the lines of file1. I Know for example that first line of file2 will replace 105586 line of file1, second line will replace 104759 line, etc... I also have a third file3 with these numbers (105586,104759,...). The code i tried to use is:
N_lines=162000
M_lines=1600
fin=fopen('/my_path/file3','r');
for i=N_lines;
data=fgets(fin);
for j=M_lines;
file1(data,:)=file2(j,:);
end;
end;
However, this error occurs: Subscripted assignment dimension mismatch.
Can anyone help me with this problem?
Thank you in advance!
2 comentarios
Amos
el 23 de Feb. de 2016
What is the data in your files? Is it numbers? If it is a file containing numbers in a regular pattern, say with m rows and n columns, then one could also use commands like "dlmread".
Respuesta aceptada
Amos
el 23 de Feb. de 2016
Maybe something like:
line_numbers = dlmread('file3');
data1 = dlmread('file1');
data2 = dlmread('file2');
for i=1:length(line_numbers)
data1(line_numbers(i),:) = data2(i,:);
end
dlmwrite('file1_modified',data1);
Note, this is just dummy code. You will need to adapt it to care for headers (if any) in your data files and the specific data format.
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Low-Level File I/O 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!