Simplicity
Simplicity

Reputation: 48916

Substituting values of a matrix

Say I have the following two matrices:

>> x = [1 4 3; 6 4 3; 6 9 3; 2 4 3; 5 4 0; 5 3 1; 6 4 7];
>> y = [0 0 1; 1 1 0; 1 1 0; 0 1 1; 0.2 0.8 0.54; 1 1 1; 0 0 0];

Where you can think of x as some image, and y the degree of membership of of each element of x to some region of interest.

Say I set those elements in x that have degree of membership = 1 to 1 and the other elements to 0 as follows:

x = zeros(size(y));
x(y==1) = 1;

In which case I will have the following output:

     0     0     1
     1     1     0
     1     1     0
     0     1     1
     0     0     0
     1     1     1
     0     0     0

Now, for the elements of 0, how can I substitute their values with the value of y in the corresponding location?

Thanks.

Upvotes: 1

Views: 107

Answers (1)

Autonomous
Autonomous

Reputation: 9075

Try this:

x(x==0)=y(x==0);

Ans:

x =

     0         0    1.0000
1.0000    1.0000         0
1.0000    1.0000         0
     0    1.0000    1.0000
0.2000    0.8000    0.5400
1.0000    1.0000    1.0000
     0         0         0

Upvotes: 1

Related Questions