gpt4 book ai didi

Matlab 矩阵乘法忽略 nans?

转载 作者:行者123 更新时间:2023-12-02 17:46:24 24 4
gpt4 key购买 nike

我有两个矩阵 AB 我想将它们相乘,但它们包含 nan

默认乘法将 nan 放在结果的整个列中,其中数据中甚至有一个 nan。我想忽略它们,例如 nansum/nanmean 等。换句话说,不是计算

 sum( A(i,j) * B(j,k) )

我希望它使用 nansum

我想这可以通过将 nan 替换为 0,然后相乘来实现,但是使用 nansum 的目的是为了避免这种情况,对吧?

最佳答案

乘法产生 NaN 的原因是没有一种真正的方法可以处理它们。如果,在你的情况下,它们应该被零替换,那么写起来最简单

A(isnan(A)) = 0;

在运行乘法之前。我建议不要重写矩阵乘法,因为您不会从自己的代码中获得与内置矩阵代数相似的性能。

nansum,特别是 nanmean 等是统计工具箱的函数,其中 NaN 不是简单地替换为零,而是实际上被删除从计算来看,因为在统计上下文中,NaN 用于指示缺失的数据点。那里没有 nanmult,因为在统计学中,您通常不会进行矩阵乘法,如果您这样做(例如在回归中),向量中缺少单个观察值通常意味着您无论如何,我都想扔掉整行/整列。

关于Matlab 矩阵乘法忽略 nans?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14178843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com