Borrar filtros
Borrar filtros

How to generate new vector and replace certain elements?

2 visualizaciones (últimos 30 días)
Quick Mart
Quick Mart el 20 de Feb. de 2020
Comentada: Quick Mart el 20 de Feb. de 2020
I have vector X = [3 15 9 12 -1 0 -12 9 6 1].
I want to generate a new vector V which equals X except that the elements of X that are greater than the mean of X are replaced by their difference from the mean of X.
I've tried doing this with
V = X;
V=V(V>mean(V))-mean(V)
But it generates only
10.8 4.8 7.8 4.8 1.8
it doesn't keep the values that are less than the mean.
I'm new to Matlab and have tried approaching it with a loop but I just can't figure it out.

Respuesta aceptada

Guillaume
Guillaume el 20 de Feb. de 2020
Nearly got it:
meanV = mean(V); %save the mean in a new variable to avoid calculating it more than once
V(V > meanV) = V(V > meanV) - meanV;

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements 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