Próbuję obliczyć średnią wartość macierzy ignorując wartości NaN za pomocą funkcji nanmean w MATLAB. Jednak gdy testuję kod skopiowany z dokumentacji MATLAB, MATLAB wyrzuca błąd mówiący:

Error using sum
Invalid option. Option must be 'double', 'native', 'default', 'omitnan' or 'includenan'.

Error in mean (line 111)
        m = sum(x, dim, flag, 'omitnan');

Error in nanmean (line 17)
y = mean(varargin{:},'omitnan');

To jest naprawdę mylące. Dlaczego powinienem zobaczyć błąd po użyciu kodu z dokumentacji MATLAB?

„Oficjalny” kod, który powoduje ten błąd, jest wymieniony poniżej:

X = reshape(1:30,[2 5 3]);
X([10:12 25]) = NaN
y = nanmean(X,'all')

Używam MATLAB w wersji R2017a.

1
Delick Tang 1 listopad 2018, 06:41

1 odpowiedź

Najlepsza odpowiedź

Opcja 'all' została wprowadzona w najnowszym wydaniu MATLAB, R2018b. Używasz starszej wersji, która nie ma tej funkcji.

Zamiast tego przekształć macierz w kolumnę:

y = nanmean(X(:))

Jeśli masz licencję MATLAB, możesz uzyskać dostęp do dokumentacji swojej wersji MATLAB tutaj: https://www.mathworks.com/help/releases/R2017a/matlab/functionlist.html

Możesz również uzyskać dostęp do dokumentacji funkcji, wpisując doc nanmean w MATLAB. Wtedy zawsze możesz zobaczyć dokumentację odpowiadającą wersji MATLAB, której używasz.

0
Cris Luengo 1 listopad 2018, 10:03