回覆列表
  • 1 # 使用者3105342447180

    NaN是Not-a-Number的簡寫,中文譯為“非數”,表示計算結果為不定。關於出現NaN的原因,樓上兩位都說是因為分母為0或被除數為0,這是不確切的。比如1/0得到的是Inf而不是NaN。計算結果出現NaN,一般有這樣幾種情況:0/0,Inf/Inf,Inf-Inf,Inf*0,這幾種情況都會導致結果不確定,所以會得到NaN。需要說明的是,由於數值計算的浮點數表示範圍是有限的,Inf並不是數學上真正意義的無窮大,例如計算組合值C(300,200),可以用nchoosek(300,200)得到正確的結果(當然,由於浮點數的精度問題,並不是精確的結果),但如果直接根據定義計算 300!/200!/100!,就會得到NaN:12345678910>> nchoosek(300,200)Warning: Result may not be exact. Coefficient is greater than 10^15,and is only good to 15 digits.(Type "warning off MATLAB:nchoosek:LargeCoefficient" to suppress this warning.)> In D:\MATLAB6p5\toolbox\matlab\specfun\nchoosek.m at line 50ans =4.1583e+081>> factorial(300)/factorial(200)/factorial(100)ans =NaN就題主貼出的圖而言,看不出和NaN有什麼關係。NaN通常在繪圖中被用於表示不顯示的部分,例如,把一條曲線中間去掉一些點,使之視覺上成為多條線段。而題主所貼的曲線看不出有斷開的部分。至於說曲線看起來亂,那要看相應的資料是怎樣計算出來的,如果題主不給出程式碼,別人是無法判斷的。

  • 2 # 藍風24

    NaN 用於處理計算中出現的錯誤情況,比如 0.0 除以 0.0 或者求負數的平方根。NaN 實際上不是一個數,而是一族。

  • 中秋節和大豐收的關聯?
  • 巧克力有分哪幾種?