Is there a way to change a vector range by condition?

2 visualizaciones (últimos 30 días)
maxmathlab
maxmathlab el 12 de Oct. de 2016
Editada: Andrei Bobrov el 12 de Oct. de 2016
Hallo,
i use a simple example for my problem:
i have a vector
x=[-10:10];
x=x';
Now i want to change values of the range 5:15 which are positive. i tried something like this:
x(5:15 & x>0,1)=100
x( (5:15) & (x>0) ,1)=100
x(5:15,1)&x>0=100
x(x(5:15)<0,1)=100
nothing seems to work. pls help.

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 12 de Oct. de 2016
Editada: Andrei Bobrov el 12 de Oct. de 2016
x=(-10:10)';
z = x(5:15);
z(z>0) = 100;
x(5:15) = z;
or
x=(-10:10)';
b = false(size(x));
b(5:15) = true;
x(b & x > 0) = 100;
or in one row
x(intersect(find(x>0),5:15)) = 100;

Más respuestas (1)

KSSV
KSSV el 12 de Oct. de 2016
If you want to change values at known indices use:
x(5:15)=100;
If you want to change values according to the values of x use:
x(x>1)=100;
x(x>1 & x<2)=100;
  1 comentario
maxmathlab
maxmathlab el 12 de Oct. de 2016
Editada: maxmathlab el 12 de Oct. de 2016
i know matlab this far. but how do i combind it?
for e.g.: if i want to change my vector x from x(5) to x(15) but also only negativ values, what would the command look like?

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by