[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: how to vectorize it
From: |
michaell |
Subject: |
Re: how to vectorize it |
Date: |
Mon, 22 Jul 2019 15:46:11 -0500 (CDT) |
Doug Stewart-4 wrote
> On Sun, Jul 21, 2019 at 5:51 PM shall689 <
> sahallacy@
> > wrote:
>
>> shivax wrote
>> > hi, see this code:
>> >
>> > input for example:
>> >
>> > ris=[1 0 0;0 1 0;1 0 0; 0 1 1]
>> > tit=[0 1 0 0]
>> >
>> > tic
>> > bb=0;
>> > for hh=1:columns(ris)
>> > bb=0;
>> > for gg=1:rows(ris)
>> > if tit(gg)
>> > bb=0;
>> > if ris(gg,hh)
>> > bb=1;
>> > endif
>> > endif
>> > ris(gg,hh)=bb;
>> > endfor
>> > endfor
>> > toc
>> >
>> >
>> >
>> > it's possible to avoid loop?
>> >
>> >
>> >
>> > --
>> > Sent from:
>> > http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html
>>
>>
> If you explain what you are trying to do, there might be a better way.
>
>
>
>
>> Here is what I understand of your very interesting problem. Each row in
>> the
>> tit vector is associated with a row in the ris matrix. All ris rows up
>> until the first tit row that equals 1 should be set to zero. When a tit
>> row
>> = 1, the associated row in the ris vector should be copied and over write
>> all ris rows until tit row equals 1 again.
>>
>> I haven't been able to solve the problem, but I think repmat and find
>> might
>> be helpful.
>>
>> find(tit==1) will find the index of all the rows in tit that are equal to
>> 1
>> and repmat(ris(row,:),row,1) can be used to repeat a specific row in ris.
>>
>> If you can find the difference between the row index values of tit==1,
>> you
>> can determine how many times to repeat a specific row.
>>
>> If you find out how to vectorize this problem, could you please post the
>> solution.
>>
>> Thanks,
>> Stephen
>>
>>
>>
>> --
>> Sent from:
>> http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html
>>
>>
>>
>
> --
> DAS[image: Certificate for 206392]
>
> <https://linuxcounter.net/user/206392.html>
ris=[zeros(1,size(ris,2));ris(tit==1,:)](1+cumsum(tit'),:);
--
Sent from: http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html