Cody

Problem 1216. Mean ignoring NaNs

Solution 194397

Submitted on 21 Jan 2013
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Pass
%% x=[1 5 9;2 6 10;3 nan 11;nan nan nan]; y_correct=[2 5.5 10]; y=average(x); assert(isequalwithequalnans(y,y_correct)) y=average(x,1); assert(isequalwithequalnans(y,y_correct)) y_correct=[5;6;7;nan]; y=average(x,2); assert(isequalwithequalnans(y,y_correct)) y_correct=x; y=average(x,3); assert(isequalwithequalnans(y,y_correct))

d = 1 toremove = 0 0 0 1 y = 2 toremove = 0 0 1 1 y = 2.000000000000000 5.500000000000000 toremove = 0 0 0 1 y = 2.000000000000000 5.500000000000000 10.000000000000000 toremove = 0 0 0 1 y = 2 toremove = 0 0 1 1 y = 2.000000000000000 5.500000000000000 toremove = 0 0 0 1 y = 2.000000000000000 5.500000000000000 10.000000000000000 toremove = 0 0 0 y = 5 toremove = 0 0 0 y = 5 6 toremove = 0 1 0 y = 5 6 7 toremove = 1 1 1 y = 5 6 7 NaN y = 1 5 9 2 6 10 3 NaN 11 NaN NaN NaN

2   Fail
%% x=cat(3,[1 5 9;NaN 6 10;NaN 7 NaN;4 8 12],... [13 17 21;14 18 22;15 19 NaN;16 20 24]); y_correct=cat(3,[15 39 62]/6,[87 111 134]/6); y=average(x); assert(isequalwithequalnans(y,y_correct)) y=average(x,1); assert(isequalwithequalnans(y,y_correct)) y_correct=cat(3,[5;8;7;8],[17;18;17;20]); y=average(x,2); assert(isequalwithequalnans(y,y_correct)) y_correct=[7 11 15;14 12 16;15 13 NaN;10 14 18]; y=average(x,3); assert(isequalwithequalnans(y,y_correct))

Error: Assertion failed.

3   Fail
%% x=zeros(2,1,0); y_correct=mean(x); y=average(x); assert(isequalwithequalnans(y,y_correct)) y=average(x,1); assert(isequalwithequalnans(y,y_correct)) y_correct=mean(x,2); y=average(x,2); assert(isequalwithequalnans(y,y_correct)) y_correct=mean(x,3); y=average(x,3); assert(isequalwithequalnans(y,y_correct))

Error: Attempted to access x(:,1); index out of bounds because size(x)=[2,1,0].