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值?的主要内容,如果未能解决你的问题,请参考以下文章