Matrix Data Results Explanation
    2 ビュー (過去 30 日間)
  
       古いコメントを表示
    
    Augusto Gabriel da Costa Pereira
 2023 年 9 月 16 日
  
    
    
    
    
    コメント済み: Dyuman Joshi
      
      
 2023 年 9 月 16 日
            I used the following code, and you can see that in the second row of the fourth column, the result is zero and not NaN; it should be NaN as the result.
%
soma_total = nan(3, 4);
data1 = [nan nan 1 2; 1 2 nan nan; 1 2 nan nan];
data2 = [5 5 nan nan; 2 1 1 nan; nan nan 1 1];
% 
result = nansum(cat(3, soma_total, data1, data2), 3);
% 
disp(result);
The result was:
     [5     5     1     2;
     3     3     1     0;
     1     2     1     1]
The result should be:
     [5     5     1     2;
     3     3     1     NaN;
     1     2     1     1]
Does anyone have an idea to solve this?
0 件のコメント
採用された回答
  Dyuman Joshi
      
      
 2023 年 9 月 16 日
        
      編集済み: Dyuman Joshi
      
      
 2023 年 9 月 16 日
  
      nansum does not do what you are expecting it to do. Also, using nansum() is not recommended as you can see from its documentation page. Use sum instead -
Here's a workaround - 
%
soma_total = nan(3, 4);
data1 = [nan nan 1 2; 1 2 nan nan; 1 2 nan nan];
data2 = [5 5 nan nan; 2 1 1 nan; nan nan 1 1];
%Dimension to operate on
dim = 3;
%defining the array
arr = cat(dim, soma_total, data1, data2);
%Finding indices for all elements which are NaN corresponding to the "dim" dimension
idx = all(isnan(arr),dim)
%If you want to use nansum instead, use this command
%result = nansum(arr,dim)
result = sum(arr,dim,'omitnan')
%Converting the respective values back to NaN
result(idx) = NaN
2 件のコメント
その他の回答 (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!

