find zero and nonzero elemnt in cell

A={[21],[0],[32],[4],[60],[0],[0]};
B=A;
temp=cell2mat(A);
temp_1=find(temp==0);
B=cellfun(@(m,y) y(m)==0.1,temp_1,A, 'UniformOutput', false); % put 0.1 for zero element in A
temp_2=find(temp~=0);
B=cellfun(@(m,y) y(m)==0.2,temp_2,A, 'UniformOutput', false); % put 0.2 for nonzero element in A
result should be
result={[0,2],[0.1],[0.2],[0.2],[0.2],[0.1],[0.1]};

 Réponse acceptée

KSSV
KSSV le 29 Mai 2019
A={[21],[0],[32],[4],[60],[0],[0]};
B=A;
idx = cellfun(@any,A) ;
B(idx) = {0.2} ;
B(~idx) = {0.1} ;

1 commentaire

Another possible way:
A = {[21],[0],[32],[4],[60],[0],[0]};
B = A;
idx = cell2mat(B) == 0;
B(idx) = {0.1};
B(~idx) = {0.2};

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Discrete Data Plots dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by