Why do i get NaN?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dear all,
i try to run this very simpel Code (it worked already with other Input files with identical build-up). I try to import a table with 2 columns from 6 .csv files each and want to declare a starting point in column 1 for every table with "anfang" to average all values from column 2 from the starting point to end. As i said it works with other .csv files but in this case i only get an average value for the first 2 files. For the other 4 files i get "NaN". I tried to debug the code but i dont get any errors at this point and i also checked the columns of the imported tables but everything seems good (no critical values that could affect mathematical operations or something else). I also tried to change the values in "anfang" to try a earlier or later starting point but its also didn't work.
Thanks for help
clear all
close all
%%
filename = dir('*.csv');
%% avgT
anfang = [700,700,200,100,140,140];
%%
for idx1 = 1:length(filename)
Cell{idx1} = readtable(filename(idx1).name);
Cell{idx1} = table2array(Cell{idx1});
avgT (idx1) = mean(Cell{idx1}(anfang:end,2))
end
2 commentaires
Réponses (1)
Scott MacKenzie
le 6 Mai 2021
Modifié(e) : Scott MacKenzie
le 6 Mai 2021
It's hard to say without being able to run your code, but it seems to me that anfang in
avgT(idx1) = mean(Cell{idx1}(anfang:end,2));
should include an index. Try
avgT(idx1) = mean(Cell{idx1}(anfang(idx1):end,2));
Also, why are you putting the data from the files into a cell array of cell arrays? The lines in your for-loop can be simplified. Try
T = readtable(filename(idx1).name);
C = table2array(T);
avgT(idx1) = mean(C(anfang(idx1):end,2));
Voir également
Catégories
En savoir plus sur Matrix Indexing 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!