Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.soft-sys.math.mathematica > #16834 > unrolled thread
| Started by | Bill Rowe <readnews@sbcglobal.net> |
|---|---|
| First post | 2014-04-21 09:12 +0000 |
| Last post | 2014-04-25 04:44 +0000 |
| Articles | 2 — 2 participants |
Back to article view | Back to comp.soft-sys.math.mathematica
Re: boolean indexing for subset reassignment Bill Rowe <readnews@sbcglobal.net> - 2014-04-21 09:12 +0000
Re: boolean indexing for subset reassignment Alan <alan.isaac@gmail.com> - 2014-04-25 04:44 +0000
| From | Bill Rowe <readnews@sbcglobal.net> |
|---|---|
| Date | 2014-04-21 09:12 +0000 |
| Subject | Re: boolean indexing for subset reassignment |
| Message-ID | <lj2nd5$6hs$1@smc.vnet.net> |
On 4/20/14 at 4:47 AM, alan.isaac@gmail.com (Alan) wrote:
>Two years ago this answer was given:
>http://mathematica.stackexchange.com/questions/2821/does-mathematica
>-have-advanced-indexing
>Essentially, the answer was that Mathematica did not provide direct
>support for this feature (unlike say NumPy, R, etc.). Work arounds
>were suggested.
>Has the situation changed?
No, there is no built-in function that does just what was
described. But this is a very simple thing to do in Mathematica.
generate an array with some values greater than 15:
In[3]:= a = RandomInteger[{1, 20}, {4, 3}]
Out[3]= {{12, 6, 17}, {4, 17, 19}, {14, 10, 7}, {8, 2, 15}}
generate the array to change:
In[4]:= b = RandomReal[1, {4, 3}]
Out[4]= {{0.6304544421081466, 0.10672523812862322,
0.4822372961689563}, {0.06301096415944252,
0.975158725702236, 0.052202491707093346},
{0.06883790695346681, 0.7890506831190796,
0.8367965617051536}, {0.8641752609839166,
0.6371442124093818, 0.9217402690944818}}
then
In[5]:= m = b Unitize@Clip[a, {1, 15}, {0, 0}]
Out[5]= {{0.6304544421081466, 0.10672523812862322, 0.},
{0.06301096415944252, 0., 0.}, {0.06883790695346681,
0.7890506831190796, 0.8367965617051536},
{0.8641752609839166, 0.6371442124093818,
0.9217402690944818}}
is array b changed to have a 0 wherever the corresponding
element of a is greater than 15
[toc] | [next] | [standalone]
| From | Alan <alan.isaac@gmail.com> |
|---|---|
| Date | 2014-04-25 04:44 +0000 |
| Message-ID | <ljcp7v$948$1@smc.vnet.net> |
| In reply to | #16834 |
Thanks for taking a stab at this, but you have not described comparable functionality. Most importantly, you are not changing the list `b` in place. Cheers, Alan Isaac
[toc] | [prev] | [standalone]
Back to top | Article view | comp.soft-sys.math.mathematica
csiph-web