Re: Remove Indeterminate elements
- To: mathgroup at smc.vnet.net
- Subject: [mg64309] Re: Remove Indeterminate elements
- From: Bill Rowe <readnewsciv at earthlink.net>
- Date: Fri, 10 Feb 2006 02:14:02 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
On 2/9/06 at 2:44 AM, berbas at anadolu.edu.tr (Baris Erbas) wrote: >I have been trying to remove some elements of a list which should >be quite straightforward. The list is as follows: >{{x1,y1},{x2,y2},.{xi,yi},{Indeterminate,Indeterminate},.{xn,yn}}. >All the components are real numbers apart from some Indeterminate >expressions. I want the list without the Indeterminate terms. I >have been trying to use Delete with If command but cannot succeed. >Can anyone help please? Instead of Delete which needs to know the position of the element to be removed try DeleteCases, i.e., In[4]:= data = {{x1, y1}, {x2, y2}, {xi, yi}, {Indeterminate, Indeterminate}, {xn, yn}}; DeleteCases[data, {Indeterminate, _}] Out[5]= {{x1, y1}, {x2, y2}, {xi, yi}, {xn, yn}} In your particular example, whenever Interminate occurred in the second position it also occurred in the first. If this is always the case then the second argument I used for DeleteCases will do what you want. But if this is not the case the second argument would need to be changed thusly DeleteCases[data, {Indeterminate, _} | {_, Indeterminate] Another approach to solving this problem assuming all of the (xn,yn} pairs consisted of numeric items would be to use Cases, i.e., In[15]:= data = ReplacePart[ Table[{Random[], Random[]}, {10}], Indeterminate, {{4, 2}, {5, 1}, {2, 2}}]; Cases[data, {_?NumericQ, _?NumericQ}] Out[16]= {{0.08313958517187849, 0.2837232667317129}, {0.8152400018945123, 0.4014387550777305}, {0.18294719364877007, 0.2774241010494983}, {0.7296820914209136, 0.8678526050128962}, {0.07226920149008315, 0.08536415401470944}, {0.242445899688783, 0.06375672253197655}, {0.9124757124681858, 0.19757087686110195}} -- To reply via email subtract one hundred and four