help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

## Re: Easy about Matrices

 From: Henry F. Mollet Subject: Re: Easy about Matrices Date: Mon, 18 Apr 2005 14:18:46 -0700 User-agent: Microsoft-Entourage/10.1.1.2418

```I don't understand fully. As outlined x will end up to be a zero matrix,
whereas I thought one should end up with 2 matrices, pos values replaced
with zeros in one, negative values replaced with zeros in the other?
Henry
octave:18> x = randn(2,4)
x =

-0.273788  -0.671445  -1.522762   0.170152
-2.135687   1.040917   0.017514  -0.413427

octave:19> x_positive = x(x<0)=0
x_positive = 0
octave:20> x
x =

0.00000  0.00000  0.00000  0.17015
0.00000  1.04092  0.01751  0.00000

octave:21> x_negative = x(x>=0)=0
x_negative = 0
octave:22> x
x =

0  0  0  0
0  0  0  0

% Trying the following:
octave:27> x=xpos=xneg=randn(2,4)
x =

-0.77668  -0.21781   0.45580  -0.34135
-0.57917   0.78780   1.97339  -0.79024

octave:28> x_positive = xpos(xpos<0)=0
x_positive = 0
octave:29> xpos
xpos =

0.00000  0.00000  0.45580  0.00000
0.00000  0.78780  1.97339  0.00000

octave:30> x_negative = xneg(xneg>=0)=0
x_negative = 0
octave:31> xneg
xneg =

-0.77668  -0.21781   0.00000  -0.34135
-0.57917   0.00000   0.00000  -0.79024

octave:32> whos

*** local user variables:

prot  type                       rows   cols  name
====  ====                       ====   ====  ====
rwd  matrix                        2      4  x
rwd  scalar                        1      1  x_negative
rwd  scalar                        1      1  x_positive
rwd  matrix                        2      4  xneg
rwd  matrix                        2      4  xpos

on 4/18/05 11:06 AM, avraham at address@hidden wrote:

> On Mon, Apr 18, 2005 at 12:43:05PM -0500, Quentin Spencer wrote:
>> Alvaro Aguilera wrote:
>>
>>> Hello,
>>>
>>> I want to plot the data inside a matrix, but with different colors for
>>> the negative and positve terms. I do this now by spliting the matrix
>>> into two (negative, positive) using a "for" loop, and I wonder if
>>> there is another better approach to do this.
>>>
>>> Any hint welcome :)
>>>
>>> Regards,
>>> Alvaro.
>>>
>> I'm not completely sure if this is what you're looking for, but maybe
>> this example helps:
>>
>> x = randn(1,1000);
>> x_positive = x(find(x>=0));
>> x_negative = x(find(x<0));
>>
>> -Quentin
>>
>>
>>
>> -------------------------------------------------------------
>> Octave is freely available under the terms of the GNU GPL.
>>
>> Octave's home on the web:  http://www.octave.org
>> How to fund new projects:  http://www.octave.org/funding.html
>> Subscription information:  http://www.octave.org/archive.html
>> -------------------------------------------------------------
> Hi,
> I do not really know if this is important for Alvaro Aguilera.
> The drawback of your approach is that the relation between the
> value and its place in the matrix is lost.
> An alternative could be (example):
> 684~> x = randn(12,100);
> x_positive = x(x<0)=0;
> x_negative = x(x>=0)=0;
> The two arrays have the size of the original one, but the terms
> of "wrong sign" are replaced by zeros.
> Check:
> y=x_positive+x_negative;
> 694~> min(min(y-x))
> ans = 0
> 694~> max(max(y-x))
> ans = 0
>
> In order to avoid plotting the points at y=0, one can use NaN
> instead of 0: x_positive = x(x<0)=NaN; etc
>
> Cheers, Avraham
>
>
>
> -------------------------------------------------------------
> Octave is freely available under the terms of the GNU GPL.
>
> Octave's home on the web:  http://www.octave.org
> How to fund new projects:  http://www.octave.org/funding.html
> Subscription information:  http://www.octave.org/archive.html
> -------------------------------------------------------------
>

-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------

```

reply via email to

 [Prev in Thread] Current Thread [Next in Thread]