How would I take the mean of each row from column_13 of 79 csv files?

2 vues (au cours des 30 derniers jours)
muhammad choudhry
muhammad choudhry le 17 Juin 2022
Commenté : Karim le 17 Juin 2022
Hi,
I am completely stuck here. I am trying to take the mean of each row of column 13 in the 79 csv files and there are 48 rows in total in each file but I am struggling to make a code here. I anyone can help.
Code tried so far:
close all; clear all; clc;
P = 'F:\3-PIV_Experimental_Data\Calculations_TurbulentIntensity\line_Data\Elliptical_Side_LSB\Length\DesignPoint\110_outlet';
S = dir(fullfile(P,'*.csv'));
N = natsortfiles({S.name});
TurbulentFluctuationArray_Mean=zeros(numel(N), 1);
for i = 1:numel(N);
data = readtable( fullfile(P, N{i}) ); % read the csv files
col_13(i) = mean([data(:,13)])
end
Error:
Error using sum
Invalid data type. First argument must be numeric or logical.
Error in mean (line 127)
y = sum(x, dim, flag) ./ mysize(x,dim);
Error in rowMean_practise (line 10)
col_13(i) = mean([data(:,13)],79)
  2 commentaires
Karim
Karim le 17 Juin 2022
cn you add one of the files as an example?

Connectez-vous pour commenter.

Réponse acceptée

Karim
Karim le 17 Juin 2022
Modifié(e) : Karim le 17 Juin 2022
You were almost there, you just need to convert the table to an array to take the mean of the values, see below for a quick fix:
P = 'F:\3-PIV_Experimental_Data\Calculations_TurbulentIntensity\line_Data\Elliptical_Side_LSB\Length\DesignPoint\110_outlet';
S = dir(fullfile(P,'*.csv'));
N = natsortfiles({S.name});
TurbulentFluctuationArray_Mean=zeros(numel(N), 1);
col_13_data = zeros(48,numel(N))
for i = 1:numel(N);
data = readtable( fullfile(P, N{i}) ); % read the csv files
col_13_data(:,i) = table2array( data(:,13) ); % get the 13th column of each file
end
col_13_mean = mean(col_13_data ,2 ); % get the mean value for each row, over the files
  2 commentaires
muhammad choudhry
muhammad choudhry le 17 Juin 2022
Modifié(e) : muhammad choudhry le 17 Juin 2022
Its not quite right. its taking the mean of column_13 in each file and then giving me 79 mean values corresponding to 79 files.
I want the code to read row1 from each file so it will be 79 rows ....... take a means of them 79 values and store in a separate file and keep doing until the last value which is on 48th row... So my final file have 48 rows result.
similar to example below:
https://uk.mathworks.com/matlabcentral/answers/1742185-how-to-do-the-example-below-in-matlab-i-am-dealing-with-same-sort-of-problem-in-matlab?s_tid=srchtitle
Karim
Karim le 17 Juin 2022
ok i think i understand what you mean, i update the example code accordingly

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Adding custom doc dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by