matlab - 用 NaN 替换矩阵的某些元素 (MATLAB)

标签 matlab matrix nan

我有一个向量 A。

A=[3,4,5,2,2,4;2,3,4,5,3,4;2,4,3,2,3,1;1,2,3,2,3,4]

A 中的某些记录必须替换为 NaN 值,因为它们不准确。 我创建了向量 rowid,它记录了必须保留的最后一个值,之后必须将现有值交换为 NaN。

rowid=[4,5,4,3]

所以我希望创建的向量 B 如下所示:

B=[3,4,5,2,NaN,NaN;2,3,4,5,3,NaN;2,4,3,2,NaN,NaN;1,2,3,NaN,NaN,NaN]

我不知道该怎么做。我试过用

A(:,rowid:end)

开始从向量 A 中选择数据。我希望能够使用 sub2ind 或某种 idx 来执行此操作,可能是 if 循环,但我不知道从哪里开始,也找不到合适的我的想法基于类似的问题!

非常感谢任何提示/指示,非常感谢

最佳答案

如果您还不是 matlab 专家,我现在会坚持使用简单的 for 循环:

B = A;
for i=1:length(rowid)
    B(i, rowid(i)+1:end) = NaN;
end

把它写成一行总是一件很有趣的事情(参见 Mohsen 的回答),但在许多情况下,显式的 for 循环会更清晰。

关于matlab - 用 NaN 替换矩阵的某些元素 (MATLAB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18917404/

相关文章:

matlab - 使用带有隐式函数的 ezplot 时出现问题

java - Matlab 在 jar 包中看不到我的一些 java 类(不是全部)

python - SciPy:将 1/0 稀疏矩阵转换为 0/1 稀疏矩阵

perl - 为什么 'NaN'根据警告编译指示是数字?

javascript - 如何检查 NaN javascript 的相等性

cluster-analysis - 如何处理插补没有意义的 NaN 值? (PCA)

matlab - 检查 Matlab 函数的输入参数是否存在

matlab - 如何翻转矩阵的特定部分

R 稀疏矩阵的repmat函数

r - 无法从数据框中删除空白,因此无法找到均值