Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1996
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1996

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Setting parts of matrices

  • Subject: [mg2966] Re: Setting parts of matrices
  • From: espen.haslund at fys.uio.no (Espen Haslund)
  • Date: 17 Jan 1996 05:07:40 -0600
  • Approved: usenet@wri.com
  • Distribution: local
  • Newsgroups: wri.mathgroup
  • Organization: Wolfram Research, Inc.
  • Sender: mj at wri.com

In article <4cqk0q$ig5 at dragonfly.wri.com>, jnygaard at math.uio.no says...
>
>Can somebody tell me how to set a submatrix of a larger matrix?
>Assume a is a larger matrix than b. I would like to do something
>like
>
>  a[[Range[i1,i2],Range[j1,j2]]]=b;
>
>Unfortunately, this does not work, and the Mathematica-book of
>Wolfram doesn't tell me how to do it. It just says that
>
>  a[[Range...
>
>is the way to *extract* things from a matrix.
>
>
>Jens Olav Nygaard
>
>
Hei, Jens,

It appears that no elegant solutions are posted for your problem,
so here is an un-elegant one:

replaceMatrixPart[a_,i1_,j1_,b_] :=
Module[{i2, j2, aa}, 
  aa = a;
  {i2, j2} = {i1, j1} + Dimensions[b] - 1;
  Do[aa[[i, j]] = b[[i-i1+1, j-j1+1]], {i,i1,i2}, {j,j1,j2}];
  aa
]


This replaces part of the matrix a [from (i1, j1) to the extent of b] 
with the elements of the matrix b, 
(note that the original matrix a is kept intact)

This Function is NOT tested for robustness or correctness!
I just made it.

-Espen





  • Prev by Date: Re: Setting parts of matrices
  • Next by Date: Re: multiplying sets
  • Previous by thread: Re: Setting parts of matrices
  • Next by thread: Re: Setting parts of matrices