Re: generalized foldlist problem - part 2
- To: mathgroup at smc.vnet.net
- Subject: [mg69173] Re: generalized foldlist problem - part 2
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Fri, 1 Sep 2006 06:40:19 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <ed678a$j5c$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Arkadiusz Majka wrote:
> Now, I still need your help. What I want to do now, and what I have
> problem with, is to add a constraint to the algorithm, i.e every
> element in my GeneralizedFoldList must be less than one.
> The following example says what to do if it is not.
>
> Lets take two lists
>
> list1={0.9,0.8,0.7}
> list2={3,3,3}
>
> All your algorithms use PadRight (you pad 0's). So the following matrix
> is built
>
> {{0.9, 0.9, 0.9, 0, 0}, {0, 0.8, 0.8, 0.8, 0}, {0, 0, 0.7, 0.7, 0.7}}
lst = {{0.9, 0.9, 0.9, 0, 0}, {0, 0.8, 0.8, 0.8, 0}, {0, 0, 0.7, 0.7, 0.7}};
> and we add elements along colums and obtain {0.9, 1.7, 2.4, 1.5, 0.7}
Total[lst]
--> {0.9, 1.7, 2.4, 1.5, 0.7}
> The first element is less than 1 so it's ok. The second is > 1 what I
> need to avoid. I want to avoid it by shifting the nonzero elements of
> the second and third row of above matrix of two positions:
> {0,0,0,0.8,0.8,0.8,0}, {0,0,0,0,0.7,0.7,0.7}.
PadRight[lst[[1]], Length[lst[[1]]] + 2]
--> {0.9, 0.9, 0.9, 0, 0, 0, 0}
PadLeft[lst[[2]], Length[lst[[2]]] + 2]
--> {0, 0, 0, 0.8, 0.8, 0.8, 0}
adLeft[lst[[3]], Length[lst[[3]]] + 2]
--> {0, 0, 0, 0, 0.7, 0.7, 0.7}
> I go on with suming along columns and discover that everything is fine
> until I have to add 0.8 and 0.7 what is >1. So I repeat the procedure
> by shfting hte third row of the number of position that is needed to
> ensure that my sum is <1.
I am sure that by now you are able to figure out what to do.
HTH,
Jean-Marc