Arrays MATLAB:';如果';数组一部分的任何行都包含一个值

Arrays MATLAB:';如果';数组一部分的任何行都包含一个值,arrays,matlab,Arrays,Matlab,有没有办法缩短下面代码的第2行 for i = 1:length(dataStructure) if dataStructure(1,i) == 100000000 || dataStructure(2,i) == 100000000 % this line dataStructure(:,i) = NaN; end end 我本以为以下几点就足够了(但这行不通): 换句话说,如何检查数组的给定列中是否存在数字?这里的问题是,我无法预测dataStructure

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

for i = 1:length(dataStructure)
    if dataStructure(1,i) == 100000000 || dataStructure(2,i) == 100000000 % this line
        dataStructure(:,i) = NaN;
    end
end
我本以为以下几点就足够了(但这行不通):


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

您不需要循环:

if any(dataStructure(:,i) == 100000000)
dataStructure(:,any(dataStructure==1e8,1) = NaN;

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

您不需要循环:

dataStructure(:,any(dataStructure==1e8,1) = NaN;
这称为逻辑索引,更多信息:和