I want to calculate factorial of a large data set containing some NaN in between the data.

3 vues (au cours des 30 derniers jours)
example : data set
7
8
95
210
85
NaN
NaN
52
NaN

Réponse acceptée

Guillaume
Guillaume le 3 Déc 2018
Modifié(e) : Guillaume le 3 Déc 2018
I would assume you want an output the same size as the input, in which case:
V = [7 8 95 210 85 NaN NaN 52 NaN]' %demo data
result = nan(size(v));
result(~isnan(v)) = factorial(v(~isnan(v)))
As documented factorial is only exact for input less than or equal to 21. factorial([95, 85, 52]) gives you an inaccurate result but with the correct order of magnitude. factorial(210) is far beyound what can be stored as double precision. Anything above factorial(171) is too big.

Plus de réponses (1)

madhan ravi
madhan ravi le 3 Déc 2018
a=[7
8
95
210
85
NaN
NaN
52
NaN]
factorial(a(~isnan(a))) % why not this?
  2 commentaires
Abhijeet Kumar
Abhijeet Kumar le 4 Déc 2018
sir your answer is correct but it is ignoring the NaN values in final answer and reducing the data size form 9 to 6.
madhan ravi
madhan ravi le 4 Déc 2018
Ah now i know what you want , cheers :)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by