Re: position of matrix elements for intervals
- To: mathgroup at smc.vnet.net
- Subject: [mg78558] Re: position of matrix elements for intervals
- From: Ray Koopman <koopman at sfu.ca>
- Date: Wed, 4 Jul 2007 05:35:19 -0400 (EDT)
- References: <f68491$eqh$1@smc.vnet.net>
kristoph <kristophs.p... at web.de> wrote: > Thanks a lot, this was helpful! But it seems that I have an > extended problem and I would kindly ask for your help. > > Do you have an idea how to allocate the position of the first > element satisfying the condition of each column from below? > > Example: > data = {{1, 1.`, 0.9999999932328848`}, > {1.`, 0.9985849617864345`, 3.7570598417296495`*^-108}, > {0.9999999999267634`, 4.0643593704937925`*^-207, 0}}; > > I'm looking for the position from below of the first element > in each column meeting #>=0.99. > > The output should be: > {{1,3},{2,2},{3,1}} > > I appreciate your help very much, > Kristoph The symmetry in your example allows for different interpretations of what you say. Here is code that finds the position of the last element >= .99 in each column, and reports the indices as {col,row}. In[1]:= data = {{1, 1.`, 0.9999999932328848`}, {1.`, 0.9985849617864345`, 3.7570598417296495`*^-108}, {0.9999999999267634`, 4.0643593704937925`*^-207, 0}}; In[2]:= MapIndexed[Flatten@{#2, 1 + Length@#1 - Position[ Reverse@#1, x_ /; x >= .99, {1}, 1]}&, Transpose@data] Out[2]= {{1,3},{2,2},{3,1}}