Why do i get NaN?
1 view (last 30 days)
Show older comments
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 Comments
Answers (1)
Scott MacKenzie
on 6 May 2021
Edited: Scott MacKenzie
on 6 May 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));
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!