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

0 votos
19 visitas

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]

## 2 Respostas

0 votos
respondida Set 14, 2016 por (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 (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