If isnan(x) make columns also NaN
2 ビュー (過去 30 日間)
古いコメントを表示
I have a horizontal array or data 1:1505 made of Nans and 1s (inA4)
I also have a matrix of data 96:1505 (Approx4)
Where ever a NaN appears in 'inA1' I want the entire column of Approx 1 to become NaNs.
This is what I have come up with so far, but It's not working. I'm sure the solution is simple but I can not work it out thus far
for i = 1:96;
j = 1:1505;
if inA4(j) == 1;
Approx4(i,j) = Approx4(i,j);
else isnan(Approx4(i,j));
end;
end;
0 件のコメント
回答 (2 件)
Stephen23
2016 年 2 月 10 日
編集済み: Stephen23
2016 年 2 月 10 日
This is trivial using basic MATLAB indexing:
>> A = [1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> B = [1,NaN,1]
B =
1 NaN 1
>> A(:,isnan(B)) = NaN
A =
1 NaN 3
4 NaN 6
7 NaN 9
You should learn to how use MATLAB instead of fighting it with inefficient loops:
0 件のコメント
Wolfgang
2016 年 2 月 10 日
idxNaNs = isnan(inA4); % find NaNs in inA4
Approx4(:,idxNaNs) = NaN; % set columns to NaN
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!