gpt4 book ai didi

matlab - 使给定行号的所有元素等于 NaN

转载 作者:行者123 更新时间:2023-12-02 08:09:14 26 4
gpt4 key购买 nike

给定 MATLAB 中的矩阵,如果任何元素具有非有限值,我希望使该行的所有元素等于 NaN。例如:

输入:

A=[1     2   NaN
4 5 6
7 NaN 9
0 1 2
3 4 5
6 7 8
Inf 0 1
2 3 4
5 6 7
8 NaN 0];

输出:

B=[NaN NaN   NaN
4 5 6
NaN NaN NaN
0 1 2
3 4 5
6 7 8
NaN NaN NaN
2 3 4
5 6 7
NaN NaN NaN];

如何做到这一点?

我是这样知道的:

idx_NaNinf = find((isnan(A)|isinf(A)) );
[idx_row,idx_col] = ind2sub(size(A),idx_NaNinf);

将所有行号存储在 idx_row 中并使用 for 循环,我可以使该行的元素等于 NaN。但还有其他更有效的方法吗?

最佳答案

您可以使用这一行:

A(any(~isfinite(A), 2), :) = NaN;

~isfinite(A) 对于 A 中无限或 NaN 的元素返回 true。 any(..., 2) 查找具有此类元素的所有行,逻辑索引有助于将这些行中的值设置为 NaN

关于matlab - 使给定行号的所有元素等于 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32962064/

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