making an array to skip missing data for mean calculations
8 views (last 30 days)
Show older comments
Hello, this is my first time using Matlab.
I have several arrays of monthly data. I have figured out how to calculate the mean for necessary columns, but there are some entries of missing data that were entered as -999. These outliers skew an accurate mean calculation. I want to create a new array for each month that excludes each -999 entry and counts the number of entries that are excluded.
Here is my code so far
//creates a new array from the January array 8th column//
Jan = [January(:,8)];
i am getting an error "undefined operator '==' for input arguments of type 'cell'."
if Jan(:,1) == -999
0 Comments
Answers (1)
Akira Agata
on 8 Apr 2019
If you want to calculate mean value for each column with ignoring -999 value, how about the following solution?
% Assuming your data is 100-by-8 and contains 10 '-999's
yourData = rand(100,8);
yourData(randperm(numel(yourData),10)) = -999;
% Replace -999 with NaN
idx = yourData == -999;
yourData(idx) = NaN;
% Calculate mean value for each column with setting 'omitnan' option
avg = mean(yourData,'omitnan');
0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!