How to generate new vector and replace certain elements?

2 vues (au cours des 30 derniers jours)
Quick Mart
Quick Mart le 20 Fév 2020
Commenté : Quick Mart le 20 Fév 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.

Réponse acceptée

Guillaume
Guillaume le 20 Fév 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;

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by