Make spceficic array values zero.
    3 ビュー (過去 30 日間)
  
       古いコメントを表示
    
    Santos García Rosado
 2021 年 3 月 18 日
  
    
    
    
    
    コメント済み: Santos García Rosado
 2021 年 3 月 22 日
            Hi Mathworks community!
I'm having trouble trying to make some of my array values zero. This array corresponds to my Input: 
Input = [-1 0 -1 0 0 NaN NaN NaN NaN  -1 0 -1 -1 -1 0 NaN NaN NaN 0 0 -1 0 -1 NaN NaN NaN]
I'd like to make everything inside the array zero, but the last -1 before every NaN series. This should be the expected Output:
Output = [0 0 -1 0 0 0 0 0 0  0 0 0 0 -1 0 0 0 0  0 0 0 0 -1 0 0 0]
Could someone please help me out?
Thank you,
Santos
0 件のコメント
採用された回答
  David Hill
      
      
 2021 年 3 月 18 日
        a=find(diff(isnan(Input))==1);
b=find(Input==-1);
Output=zeros(size(Input));
for k=a
    Output(b(find(b<=k,1,'last')))=-1;
end
3 件のコメント
  David Hill
      
      
 2021 年 3 月 18 日
				You could do something like:
Input = [-1 0 -1 0 0 NaN NaN NaN NaN  -1 0 -1 -1 -1 0 NaN NaN NaN 0 0 -1 0 -1 NaN NaN NaN];
Output=zeros(size(Input));
idx=[];
for k=1:length(Input)
    if Input(k)==-1
        Output(k)=-1;
        idx=[idx,k];
    end
    if isnan(Input(k))
        Output(idx(1:end-1))=0;
        idx=[];
    end
end
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

