Re: What is the fastest way to threshold data?
- To: mathgroup at smc.vnet.net
- Subject: [mg85924] Re: [mg85898] What is the fastest way to threshold data?
- From: Carl Woll <carlw at wolfram.com>
- Date: Thu, 28 Feb 2008 02:42:19 -0500 (EST)
- References: <200802270924.EAA16019@smc.vnet.net>
Kevin J. McCann wrote: >I have some 3d data {{x1,y1,z1},{x2,y2,z2},...} and I would like to set >the z-values to zero if they fall below zero. More generally, I would >like to set z to a threshold value if it is at or below a threshold. >This seems as though it should be an easy enough thing to do, but the >only way I have figured out is to parse out the z-vector, do > >mask=((#<thresh&) /@ zdata)/.True->0/.False->1; > >then >zvector = zvector*mask; > >and rebuild the {x,y,z} data. > >Kevin > > I would do this as follows: In[101]:= mat = RandomReal[{-1, 1}, {10, 3}] Out[101]= {{-0.574316, 0.0429482, 0.679336}, {0.696716, 0.0813526, -0.886499}, {0.622524, 0.687576, 0.197264}, {-0.196498, -0.263147, -0.538339}, {0.454982, 0.0226721, -0.609805}, {-0.116741, -0.491716, -0.561586}, {0.760373, -0.482596, 0.46804}, {-0.125821, 0.899048, 0.606259}, {0.760627, -0.441741, -0.668888}, {-0.767075, 0.646638, 0.737813}} In[102]:= mat[[All, 3]] = Clip[mat[[All, 3]], {0, Infinity}]; In[103]:= mat Out[103]= {{-0.574316, 0.0429482, 0.679336}, {0.696716, 0.0813526, 0.}, {0.622524, 0.687576, 0.197264}, {-0.196498, -0.263147, 0.}, {0.454982, 0.0226721, 0.}, {-0.116741, -0.491716, 0.}, {0.760373, -0.482596, 0.46804}, {-0.125821, 0.899048, 0.606259}, {0.760627, -0.441741, 0.}, {-0.767075, 0.646638, 0.737813}} Carl Woll Wolfram Research
- References:
- What is the fastest way to threshold data?
- From: "Kevin J. McCann" <Kevin.McCann@umbc.edu>
- What is the fastest way to threshold data?