1

有没有办法缩短下面代码的第 2 行?

for i = 1:length(dataStructure)
    if dataStructure(1,i) == 100000000 || dataStructure(2,i) == 100000000 % this line
        dataStructure(:,i) = NaN;
    end
end

我原以为以下就足够了(但这不起作用):

if dataStructure(:,i) == 100000000

换句话说,如何检查数组的给定列中是否存在数字?这里的问题是我无法预测 dataStructure 是否会有一行或两行,因此不能使用嵌套的 for 循环,因为每次 dataStructure 只有一行时都会导致错误。

4

2 回答 2

2
if any(dataStructure(:,i) == 100000000)
于 2012-05-23T22:09:27.120 回答
2

你不需要循环:

dataStructure(:,any(dataStructure==1e8,1) = NaN;

这称为逻辑索引,更多信息:这里这里

于 2012-05-23T22:43:38.857 回答