How to generate new vector and replace certain elements?

2 ビュー (過去 30 日間)
Quick Mart
Quick Mart 2020 年 2 月 20 日
コメント済み: Quick Mart 2020 年 2 月 20 日
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.

採用された回答

Guillaume
Guillaume 2020 年 2 月 20 日
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;

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by