matlab corr2函数为啥返回NaN值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab corr2函数为啥返回NaN值?相关的知识,希望对你有一定的参考价值。

下面是我测试的两个小实例,为什么会返回NaN呢? >> a=[1,2,3;4,5,6] a = 1 2 3 4 5 6 >> b=[1,2,3;4,5,6] b = 1 2 3 4 5 6 >> corr2(a,b) ans = 1 >> a=ones(2,3) a = 1 1... >,3;>,b) ans = 1 >> a=ones(2,3) a = 1 1 1 1 1 1 > b=[1,2,6] b = 1 2 3 4 5 6 >> corr2(a;4,5,为什么会返回NaN呢? >> a=[1,2,3;4,5,6] a = 1 2 3 4 5 6 >下面是我测试的两个小实例; b=a b = 1 1 1 1 1 1 >> corr2(a 展开

参考技术A

上图是MATLAB中corr2函数的计算公式,
从公式上看,只要A,B中有一个矩阵的元素全部相等,那么公式的分子和分母都等于0,除以0的运算就会返回NaN
题主给出的示例A,B相等,所以结果出现NaN的情况。

如果参数是数字,为啥函数返回 NaN?

【中文标题】如果参数是数字,为啥函数返回 NaN?【英文标题】:Why the function returnes NaN if the arguments are numbers?如果参数是数字,为什么函数返回 NaN? 【发布时间】:2020-11-13 12:23:29 【问题描述】:

计算第n个加泰罗尼亚语的函数不起作用(NaN) 首先,我为阶乘编写了一个函数,然后为 Catalan 编写了函数。所有的阶乘都算对了,答案的类型是数字,但是当我尝试对它们进行操作时,例如在我的函数中,我遇到了 NaN 的问题

function factorial(n) 
  var factorial = 1
  for (var i = 1; i <= n; i++) 
    factorial *= i
  
  console.log(factorial)


function catalan(n) 
  var catalan = factorial(2 * n)
  catalan /= factorial(n + 1)
  catalan /= factorial(n)
  console.log(catalan)

catalan(3)

【问题讨论】:

您的函数没有return 语句。 将阶乘函数中的 console.log(factorial) 更改为 return factorial 如前所述,你没有返回任何东西,但作为未来的提醒,typeof(NaN) === 'number',所以仅仅因为返回类型是数字并不意味着它不是NaN 为什么要改那个console.log只写在console.log之后 【参考方案1】:

正如 cmets 中所述,您不会 return 函数中的任何内容。 试试这个:

function factorial(n) 
  var factorial = 1
  for (var i = 1; i <= n; i++) 
    factorial *= i
  
  console.log("In factorial: factorial="+factorial)
  return factorial


function catalan(n) 
  var catalan = factorial(2 * n)
  catalan /= factorial(n + 1)
  catalan /= factorial(n)
  console.log("In catalan: catalan="+catalan)
  return catalan

catalan(3)

在我的控制台中,我看到:

In factorial: factorial=720
In factorial: factorial=24
In factorial: factorial=6
In catalan: catalan=5
5

【讨论】:

这解决了你的代码吗?如果是这样:你能选择我的答案吗?

以上是关于matlab corr2函数为啥返回NaN值?的主要内容,如果未能解决你的问题,请参考以下文章

matlab 如何用插值给NAN赋值

如果参数是数字,为啥函数返回 NaN?

matlab中为啥会出现NaN?

matlab 如何用插值给NAN赋值

即使我遵循公式,为啥我的 2 个向量的角度函数返回 NaN

matlab中function函数怎么用,为啥出错