有什么办法可以忽略函数中的 NaN 吗?
我想获取 eig 值忽略 NaN 因为函数 eig 不处理 NaN
我有矩阵 NxM 并且它包含 NaN 值我必须在其上应用函数 eig 但这个函数不适用于 NaN 值所以我要么删除 NaN 或者如果有一个函数可以直接执行它就像(nanmax 它给出忽略 NaN 的最大值)
小智 5
抱歉,没有什么神奇的方法可以忽略矩阵中的 NaN 元素来计算特征值。您需要数组中的所有元素来计算特征值。像其他人建议的那样检查 NaN 或删除 NaN 的工具根本没有用。如果您只是删除数组中的一个元素,则该数组将不再是方形的。所以MATLAB把数组变成了向量,这是完全不同的事情!将 NaN 转换为 0 不太可能为数组产生有意义的特征值。
像 nanmean 这样的工具也没什么用,因为它做的事情非常简单。(Nanmean 可以完成它的工作,因为它计算每列的平均值,其中 NaN 被简单地忽略。它只是对非 NaN 元素求和,然后除以 nan-NaN 的数量。)
最后,如果 NxM 矩阵不是方阵,则计算特征值是没有意义的。特征值仅针对方阵定义。也许您正在考虑奇异值,或者您正在尝试做主成分。在任何一种情况下,您仍然需要完整的矩阵,除非您打算简单地删除其中包含 nan 的所有行或列。
天下没有免费的午餐。您将需要确定整个矩阵才能计算该矩阵的特征值。至少,你需要重新思考你的问题,因为尝试按照你的要求去做是没有意义的。
| 归档时间: |
|
| 查看次数: |
1835 次 |
| 最近记录: |