find zero and nonzero elemnt in cell
19 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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]};
0 commentaires
Réponse acceptée
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
Akira Agata
le 29 Mai 2019
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};
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Discrete Data Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!