Azzera filtri
Azzera filtri

Rounding off components of a matrix

4 visualizzazioni (ultimi 30 giorni)
Nusti
Nusti il 19 Giu 2012
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?

Risposte (2)

the cyclist
the cyclist il 19 Giu 2012
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 Commenti
Walter Roberson
Walter Roberson il 19 Giu 2012
X(i,j)
However, you do not need that representation for this purpose: sign(X) will do the entire matrix at once.
Walter Roberson
Walter Roberson il 19 Giu 2012
Note: sign(0) is 0, whereas Nusti requested -1 as the output for 0.

Accedi per commentare.


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

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by