Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.soft-sys.math.mathematica > #3439
| From | Bill Rowe <readnews@sbcglobal.net> |
|---|---|
| Newsgroups | comp.soft-sys.math.mathematica |
| Subject | Re: Trying to use ReplacePart |
| Date | 2011-07-01 08:54 +0000 |
| Organization | Steven M. Christensen and Associates, Inc and MathTensor, Inc. |
| Message-ID | <iuk1vm$rpe$1@smc.vnet.net> (permalink) |
On 6/30/11 at 8:40 PM, gaminster@gmail.com (Iv=C3=A1n Lazaro) wrote:
>I needed some days ago to replace elements in a matrix. My first
>thought was to use ReplacePart, but I found myself trying to tell it
>to make all replacements at once, instead of returning multiple
>copies of the original matrix with only one element changed. As I
>was in a hurry, I solved the problem in a different way. However I'm
>still wondering how can I use a more "natural" code to solve this
>problem.
>nNum = 3; nQnum = 2;
>cNum = 2^(nNum - nQnum); cQnum = 2^(nNum - 1);
>list = Table[i, {i, 1, cQnum}]; list1 = Partition[list, cNum];
>matrix = ConstantArray[0, {cQnum, cQnum}]; matrix1 =
>RandomInteger[{1, 10}, {2^nNum, 2^nNum}]
>(matrix[[#[[1]], #[[2]]]] =
>matrix1[[
>cNum*Position[list1, #[[1]]][[1, 1]] + #[[1]], cNum*Position[list1,
>#[[2]]][[1, 1]] + #[[2]]]]) & /@ Tuples[{list, list}];
>or a faster solution,
>Table[matrix[[i, j]] =
>matrix1[[
>cNum*Position[list1, i][[1, 1]] + i, cNum*Position[list1, j][[1, 1]]
>+ j]], {i, 1, cQnum}, {j, 1,cQnum}];
Natural is not well defined. But simpler I can do. First, I can
generate a list of the rows/cols you appear to be after as follows:
In[3]:= rcList = Flatten@Partition[Range[3, 8], 2, 4]
Out[3]= {3,4,7,8}
with that I can create a 4 x 4 matrix with entries from the
larger matrix as follows:
In[4]:= lgMatrix = Table[a[i, j], {i, 8}, {j, 8}];
In[5]:= smMatrix = lgMatrix[[rcList, rcList]]
Out[9]= {{a[3, 3], a[3, 4], a[3, 7], a[3, 8]}, {a[4, 3], a[4, 4],
a[4, 7], a[4, 8]}, {a[7, 3], a[7, 4], a[7, 7], a[7, 8]},
{a[8, 3], a[8, 4], a[8, 7], a[8, 8]}}
Back to comp.soft-sys.math.mathematica | Previous | Next | Find similar | Unroll thread
Re: Trying to use ReplacePart Bill Rowe <readnews@sbcglobal.net> - 2011-07-01 08:54 +0000
csiph-web