help-octave
[Top][All Lists]
Advanced

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

Re: Please, help me vectorize this code


From: Giovanni Ciriani
Subject: Re: Please, help me vectorize this code
Date: Sun, 17 Sep 2017 10:45:28 -0400

The correct code is
M .* (M>4)



On Sun, Sep 17, 2017 at 10:08 AM, michele <address@hidden> wrote:
On 09/17/2017 01:15 PM, Pablo Fernández Bustamante wrote:
Hi,

I want the elements of a matrix M_ to be equal to those of an original matrix M but only if they satisfy a certain condition, otherwise write a zero.

The following lines of code work as expected but I want to avoid the
loop if it is possible.

>> M = floor(rand(5, 4)*10);
>> [r, c] = find(M > 4);
>> M_ = zeros(5, 4);
>> for n = 1:length(r)
M_(r(n), c(n)) = M(r(n), c(n));
endfor

I have tried

M_ = M(find(M>4));

but that returns a column vector of the elements which satisfy the condition.

Thanks in advance,

Pablo




_______________________________________________
Help-octave mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/help-octave


You can do like this:

M = floor(rand(5,4)*10);
M1 = zeros(5,4);
M1(M>4) = M(M>4);

Bests,

--
Michele Ginesi



_______________________________________________
Help-octave mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/help-octave


reply via email to

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