Replace some column values depending on a condition, MATLAB

Posted by darkcminor on Stack Overflow See other posts from Stack Overflow or by darkcminor
Published on 2011-02-04T05:31:42Z Indexed on 2011/02/07 15:25 UTC
Read the original article Hit count: 229

Filed under:
|

I have a matrix like

A=
        4.0000  120.0000   92.0000         0         0   37.6000    0.1910   30.0000
       10.0000  168.0000   74.0000         0         0   38.0000    0.5370   34.0000
       10.0000  139.0000   80.0000         0         0   27.1000    1.4410   57.0000
        1.0000  139.0000   60.0000   23.0000  846.0000   30.1000    0.3980   59.0000
        5.0000  136.0000   72.0000   19.0000  175.0000   25.8000    0.5870   51.0000
        7.0000  121.0000         0         0         0   30.0000    0.4840   32.0000

I want to replace the values of the first column that are greater than '5' to 0, also in the second column if the values are in range 121-130 replace them by 0, if they are in range 131-140 replece by 1, 141-150 by 2, 151-160 by 3... so the result matrix would be

   A=
           4.0000   0.0000   92.0000         0         0   37.6000    0.1910   30.0000
           0.0000   4.0000   74.0000         0         0   38.0000    0.5370   34.0000
           0.0000   1.0000   80.0000         0         0   27.1000    1.4410   57.0000
           1.0000   1.0000   60.0000   23.0000  846.0000   30.1000    0.3980   59.0000
           5.0000   1.0000   72.0000   19.0000  175.0000   25.8000    0.5870   51.0000
           0.0000   0.0000         0         0         0   30.0000    0.4840   32.0000

How to acomplish this?

I was trying something like

counter=1;
for i = 1: rows
    if A(i,1) > 5
        A(i ,1) = 0;
    end
    if A(i,2) > 120 &&  A(i,2) < 130
        A(i ,2) = 0;
    end
    counter = counter+1;
end

Using a case could do the trick?

© Stack Overflow or respective owner

Related posts about matlab

Related posts about case