eliminate indices that are empty

4 visualizzazioni (ultimi 30 giorni)
Thishan Dharshana Karandana Gamalathge
Commentato: madhan ravi il 30 Apr 2019
Suppose I have a vector of eliments including empty spaces in random places. How can I get the average of values that are available.
Example is as follows. Note that there is no value after 1 and 8. So I want to avoid those and get the average of the rest. Here I cannot just use the 'mean(x,1)' because empty indexes. Assume that I am considering a large vector and i cannot find the indices where there are no values, but just empty spaces.
X=[ 2 4 1 5 2 2 7 8 1 3]

Risposte (1)

madhan ravi
madhan ravi il 30 Apr 2019
Modificato: madhan ravi il 30 Apr 2019
X={ 2 4 1 [] 5 2 2 7 8 [] 1 3};
idx=cellfun('isempty',X);
X(idx)={NaN};
Wanted=mean([X{:}],'omitnan')
%or
Wanted=mean([X{~idx}])
  3 Commenti
madhan ravi
madhan ravi il 30 Apr 2019
This is the one line method
Wanted=mean([X{:}],'omitnan')
madhan ravi
madhan ravi il 30 Apr 2019
That's exactly what was posted.

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by