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 に 1 行または 2 行があるかどうかを予測できないため、ネストされた for ループを使用できないことです。これは、dataStructure に 1 行しかないたびにエラーが発生するためです。

4

2 に答える 2

2

ループは必要ありません:

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

これは論理インデックス作成と呼ばれます。詳細:ここここ

于 2012-05-23T22:43:38.857 に答える
2
if any(dataStructure(:,i) == 100000000)
于 2012-05-23T22:09:27.120 に答える