Arrays MATLAB:';如果';数组一部分的任何行都包含一个值
有没有办法缩短下面代码的第2行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
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;
这称为逻辑索引,更多信息:和