If isnan(x) make columns also NaN
    4 ビュー (過去 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 で Matrix Indexing についてさらに検索
			
	製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


