How to generate new vector and replace certain elements?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Quick Mart
am 20 Feb. 2020
Kommentiert: Quick Mart
am 20 Feb. 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.
0 Kommentare
Akzeptierte Antwort
Guillaume
am 20 Feb. 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;
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!