Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Como criar um vetor que conta o número de zeros e uns de um outro vetor?

0 votos
19 visitas
perguntada Set 14, 2016 em Ciência da Computação por danielcajueiro (5,226 pontos)  

Eu gostaria de transformar o seguinte vetor

v=[1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0]
em outro vetor

w=[4 -4 2 -1 3 -2]

Compartilhe

2 Respostas

0 votos
respondida Set 14, 2016 por danielcajueiro (5,226 pontos)  

Em python:

v=[1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,  0, 0]

n=len(v)

test=v[0]
count=1
w=[]

for i in range(1,n):
    if(test*(2*v[i]-1)==1):
         count=count+1
         if(i==n-1):
             if(test>0):
                 w.append(count)             
             else:
                 w.append(-count)                          
    else:
        if(test>0):
            w.append(count)             
        else:
            w.append(-count)                          
        test=2*v[i]-1
        count=1
print w
0 votos
respondida Set 15, 2016 por danielcajueiro (5,226 pontos)  

Em matlab (octave):

clear all
close all

v=[1; 1; 1; 1; 0; 0; 0; 0; 1; 1; 0; 1; 1; 1;  0; 0]
%w=[4 -4 2 -1 3 -2]



n=size(v,1)


teste=v(1,1)
theCount=1
countVector=1

for i=2:n
    if(teste*(2*v(i)-1)==1)
         theCount=theCount+1
         if(i==n)
             if(teste>0)
                 w(countVector,1)=theCount
             else
                 w(countVector,1)=-theCount
             end
        end        
    else
        if(teste>0)
                 w(countVector,1)=theCount
        else
                 w(countVector,1)=-theCount
        end         
        teste=2*v(i)-1
        theCount=1
        countVector=countVector+1   
   end  
end 
...