Hello there, I have a short question, as for some reason a for loop doesn't function.
1 回表示 (過去 30 日間)
古いコメントを表示
RT is a matrix and krit_out1 is a vector. There is no error message, but the loop is stuck in the first row of the matrix and I don't find the reason.. Can someone help me?
for i = 1:50
RT(RT(:,i)> krit_out1(i)) = NaN;
end
1 件のコメント
Stephen23
2017 年 10 月 24 日
Loops are not required to solve this. See Jan Simon's answer for a simple and efficient solution.
採用された回答
Birdman
2017 年 10 月 23 日
RT=ones(50,50);krit_out1=zeros(50,1);
for i=1:50
for j=1:50
if(RT(j,i)>krit_out1(j))
RT(j,i)=NaN;
end
end
end
Try this.
2 件のコメント
Jan
2017 年 10 月 23 日
krit_out1( i ) instead of j.
The vectorization of such loops is not only nice and processed efficiently, but without indices, there are less chances for typos.
その他の回答 (2 件)
Ray
2017 年 10 月 23 日
Try the following. It looks like you intend to operate on the ith column using the ith element of a vector called krit_out1:
for i = 1:50
RT(RT(:,i)> krit_out1(i) ,i) = NaN;
end
4 件のコメント
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!