How can I find the nonzero values in an cells array?.
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
The following code generates an cell array Index [1x29], where each cell is an array [29x6]:
for i = 1 : size(P1_cell,1)
    for j = 1 : size(P1_cell,2)
        [Lia,Lib] = ismember(P1_cell{i,j},PATTERNS_FOR_ERANOS_cell{1},'rows'); 
        Index1(i,j) = Lib  % 29x6
    end
        Index{i} = Index1; % 1x29
end
How can I find the nonzero values in an cells array?, and generate an array with the values from that search. I tried the following loop, but it doesn't work, it creates conflict with the previous one:
for i = 1 : length(Index)
    for j = 1 : length(Index)
        Non_ceros = length(find(Index{:,i}(j,:))); %%  I just need the length of the find function output
    end
end
I need help, Thanks in advance.
4 Commenti
Risposta accettata
  David Hill
      
      
 il 11 Gen 2021
        Non_ceros=zeros(length(Index));
for i = 1 : length(Index)      
    for j = 1 : length(Index)
        Non_ceros(i,j) = nnz(Index{i}(j,:));
    end
end
3 Commenti
  David Hill
      
      
 il 11 Gen 2021
				Works fine for me.
%generates 1x29 Index cell array
for k=1:29
  Index{k}=randi(10,29,6)-1;
end
Non_ceros=zeros(length(Index));
for i = 1 : length(Index)      
    for j = 1 : length(Index)
        Non_ceros(i,j) = nnz(Index{i}(j,:));
    end
end
%Non_ceros is a 29x29 matrix
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Matrix Indexing in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


