Rounding off components of a matrix

Hello, I am new to matlab and I got stuck at a particular point.
I have a 256 x 904 matrix with entries between -1 and 1. I need to round it off in such a way that for entries less than or equal to 0, the output should be -1 and for entries greater than 0, the output should be 1.
So, I named this matrix X.
How do I denote X = (xij) in Matlab?
I was thinking of the following code:
if xij < = 0 xij= -1 else xij = 1 end
Could someone please help me?

Answers (2)

This particular operation is easy to do across the entire matrix at once:
x = sign(x);
Even if there had not been a simple function that happened to do exactly what you needed, you can often do rounding operations cleverly on the whole matrix.

3 Comments

Hi,
I don't understand how to write X(my 256 x 904 matrix) as (xij) (general representation of an element in ith row and jth column) in Matlab.
How does that work?
Then I can use that representation and write x = sign(x), I think.
X(i,j)
However, you do not need that representation for this purpose: sign(X) will do the entire matrix at once.
Note: sign(0) is 0, whereas Nusti requested -1 as the output for 0.

Sign in to comment.

roundedX = (X > 0) * 2 - 1;
This will do the entire matrix at one time.
Another approach:
roundedX = ones(size(X));
roundedX(X <= 0) = -1;

Categories

Tags

Asked:

on 19 Jun 2012

Community Treasure Hunt

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

Start Hunting!