# negative continuous position on vector

2 visualizaciones (últimos 30 días)
Alejandro Fernández el 16 de Ag. de 2020
Comentada: hosein Javan el 17 de Ag. de 2020
Hi I have a question, i know how to solve with the code I show in the bottom of the page but i think that it has to be an easyer way. What I want to do is: starting with a vector row AA containing only one one in one position, for example:
AA = [0 0 1 0 0 0 0];
I want to get a BB vector that's next:
BB = [-2 -1 0 1 2 3 4];
A vector in which the numbers to the left of 1 are negative crescent in which the first component is the most negative position possible, the point 1 becomes 0 and the right of 1 is positive crescent until the end of the vector.
The code I know how to do is this:
AA = [0 0 1 0 0 0 0]
[m,n] = size(AA);
x = find(AA(1,:),1)
neg = AA(1:x-1)
BB(1,x) = 0
BB(1,1:length(neg)) = -length(neg):1:-1
BB(1,x+1:n) = 1:1:n-x
But I don't see that this is a very good way to get the solution...
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Bruno Luong el 16 de Ag. de 2020
Editada: Bruno Luong el 17 de Ag. de 2020
BB = (1:length(AA))-find(AA==1,1)
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Alejandro Fernández el 17 de Ag. de 2020
Well, you could make it a lot shorter than I did... thank you very much.

Iniciar sesión para comentar.

### Más respuestas (2)

hosein Javan el 16 de Ag. de 2020
k = find(logical(A));
n = length(A);
B = 1-k:n-k
A =
0 0 0 0 1 0 0 0
B =
-4 -3 -2 -1 0 1 2 3
##### 2 comentariosMostrar NingunoOcultar Ninguno
Alejandro Fernández el 17 de Ag. de 2020
Yes thank you very much, I have to give the MVP to Bruno because he did it earlier and in less steps but I appreciate it very much.
hosein Javan el 17 de Ag. de 2020
Ofcourse. thank you.

Iniciar sesión para comentar.

Sara Boznik el 16 de Ag. de 2020
AA=[0 0 1 0 0 0 0]
ne=-1;
po=1;
[n,m]=size(AA)
b=find(AA(1,:)==1)
BB=zeros(n,m)
for i=1:b-1
BB(1,i)=ne
ne=ne-1
end
for j=b+1:m
BB(1,j)=po
po=po+1
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Alejandro Fernández el 17 de Ag. de 2020
Thank you so much, you can see the previous coments, they make it with just 1 step, thank you so much by the way.

Iniciar sesión para comentar.

### Categorías

Más información sobre Statistics and Machine Learning Toolbox en Help Center y File Exchange.

R2020a

### Community Treasure Hunt

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

Start Hunting!

Translated by