Borrar filtros
Borrar filtros

load multiple .dat file and do the same calculation for same columns and make an output file

2 visualizaciones (últimos 30 días)
Hello All and let me thank you for the time you spend to read my question I have seventy .dat file(s1.dat to s70.dat) each include 8columns and 6000rows, I want to find the maximum for column 5 and 6 for each .dat file and make a new file with 70rows and 2 columns(like following)
1 C5max C6max
2 C5max C6max
70 C5max C6max
I will appreciate every single tips or advice
  3 comentarios
Samaneh Arzpeima
Samaneh Arzpeima el 16 de Abr. de 2018
thank you Sir. it would be better if I mentioned at the begining that I am a beginer. I went trough your suggested link try to use the codes,but didn't work for me.

Iniciar sesión para comentar.

Respuestas (1)

Etsuo Maeda
Etsuo Maeda el 17 de Abr. de 2018

If your sXX.dat is a csv file, the following code will help you to understand.

% generate 7 test files
for k = 1:7
    T = randi(100, 6000, 8);
    filename = ['csv', num2str(k), '.dat'];
    csvwrite(filename, T);
clear; % clear variables
% load csvfiles, find maximum, store values
for k = 1:7
    filename = ['csv', num2str(k), '.dat'];
    S = csvread(filename);
    M_col5 = max(S(:, 5));
    M_col6 = max(S(:, 6));
    M{k, :} = [M_col5, M_col6];
% save results
csvwrite('results.dat', M)
  1 comentario
Samaneh Arzpeima
Samaneh Arzpeima el 18 de Abr. de 2018
Editada: Walter Roberson el 18 de Abr. de 2018
Yours Example was super easy to understand.Thank you very much. Unfortunetaly My file is dat file with space, and I want to jump the first 22nd row and just take the 5th and 6th colomns.and find the max of each and extract to a new file.I temp a part of one of my file(I have 77of them, site1.dat ...site71.dat) could you please an other advice.sorry to ask for very elementry question. below was the only cods that came to my mind clear; clc;
datafiles = dir('*.dat');
for k = 1:71
filename = datafiles(k).name;
startRow = 22;
formatSpec = '%*60s%15f%15f%[^\n\r]';
fileID = fopen(filename,'r');
delimiterIn= ' ';
headerlinesIn = 22;
S = importdata(filename,delimiterIn,headerlinesIn);
M_col5 = max(S(:, 5 ));
M_col6 = max(S(:, 6 ));
M{k, :} = [M_col5, M_col6 ];

Iniciar sesión para comentar.


Más información sobre Get Started with MATLAB 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