replace values by the previous value

1 Ansicht (letzte 30 Tage)
nanouk verhulst
nanouk verhulst am 11 Okt. 2017
Bearbeitet: Mischa Kim am 11 Okt. 2017
Hi, I had to change values (below 60) in column 11 to the mean of a colomn 11. This worked (with the function below), but now I need to change values below 60 in colomn 11 to the previous value in column 11. I tried to figure it out by means of previous posts, but I can't make it work. Thanks!
>> lId = data(:,11) <= 60 ; data( data(:,11)<=60, 11 ) = mean(data(:,11));

Antworten (1)

Mischa Kim
Mischa Kim am 11 Okt. 2017
Not quite sure if I understand what you are trying to do, but how about
data = 10*rand(5)
old = data(data(:,1)<=6,1)
data(data(:,1)<=6,1) = mean(data(:,1))
data(data(:,1)<=6,1) = old
I worked with a smaller size array and other numbers just to demonstrate.
  3 Kommentare
Mischa Kim
Mischa Kim am 11 Okt. 2017
What do you mean by previous? Same column, row above? Let's say you have a matrix
A = [1 2 3 4;...
5 6 7 8;...
9 10 11 12]
and had to replace all values below 10 in column 3.
nanouk verhulst
nanouk verhulst am 11 Okt. 2017
Bearbeitet: Mischa Kim am 11 Okt. 2017
yes row above in same column. In your example it would not be the right value since 3 cannot be changed by the previous value (which should be higher than 10). so if the matrix would be
A = [9 10 11 12;...
8 7 6 5;...
4 3 2 1]
6 would have to become 11 and 2 would have to become 11

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by