Why do i get NaN?
1 回表示 (過去 30 日間)
古いコメントを表示
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
回答 (1 件)
Scott MacKenzie
2021 年 5 月 6 日
編集済み: Scott MacKenzie
2021 年 5 月 6 日
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));
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!