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

조회 수: 1 (최근 30일)
example : data set
7
8
95
210
85
NaN
NaN
52
NaN

채택된 답변

Guillaume
Guillaume 2018년 12월 3일
편집: Guillaume 2018년 12월 3일
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.

추가 답변 (1개)

madhan ravi
madhan ravi 2018년 12월 3일
a=[7
8
95
210
85
NaN
NaN
52
NaN]
factorial(a(~isnan(a))) % why not this?
  댓글 수: 2
Abhijeet Kumar
Abhijeet Kumar 2018년 12월 4일
sir your answer is correct but it is ignoring the NaN values in final answer and reducing the data size form 9 to 6.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by