MathGroup Archive 2002

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

Search the Archive

RE: basic operations in matrices

  • To: mathgroup at smc.vnet.net
  • Subject: [mg34608] RE: [mg34542] basic operations in matrices
  • From: "DrBob" <majort at cox-internet.com>
  • Date: Wed, 29 May 2002 02:46:43 -0400 (EDT)
  • Reply-to: <drbob at bigfoot.com>
  • Sender: owner-wri-mathgroup at wolfram.com

Guten Tag Christian,

Here's a slightly better solution that may be worth looking at.

Remove["Global`x*"]
dim = 5;
rows = ToString[Unique["x"]] & /@ Range[dim];
m = Transpose[(Unique /@ rows) & /@ Range[dim]];
m // MatrixForm
m[[All, {1, 3, 2, 4, 5}]] // MatrixForm
m[[{1, 3, 2, 4, 5}, All]] // MatrixForm

<< DiscreteMath`Combinatorica`
ClearAll[pair]
pair[i_, j_, n_] :=
  FromCycles[Join[List /@ Complement[Range[n], {i, j}], {{i, j}}
      ]
    ]
rowSwitch[m_, i_, j_] := m[[pair[i, j, Length[m]], All]]
columnSwitch[m_, i_, j_] := m[[All, pair[i, j, Length[m]]]]
rowSwitch[m, 1, 3] // MatrixForm
columnSwitch[m, 1, 3] // MatrixForm
rowSwitch[columnSwitch[m, 1, 3], 2, 4] // MatrixForm

Bobby Treat

-----Original Message-----
From: Christian Junk [mailto:junkc at fh-trier.de] 
To: mathgroup at smc.vnet.net
Subject: [mg34608] Re: [mg34542] basic operations in matrices

Guten Tag DrBob,

am Montag, 27. Mai 2002 um 09:52 schrieben Sie:

D> Christian,

D> In the following, I've generated a matrix of symbols (m).  Then I
show m
D> first with the second and third columns switched, then with the
second
D> and third rows switched.

D> Remove["Global`*"]
D> letters = {"a", "b", "c", "d"};
D> m = (Unique /@ letters) & /@ Range[4];
D> m // MatrixForm
D> m[[All, {1, 3, 2, 4}]] // MatrixForm
D> m[[{1, 3, 2, 4}, All]] // MatrixForm

D> There are other ways, but I think this is the easiest.

D> Here are functions to switch any two rows or columns.  (This may not
be
D> the easiest way, but it's an interesting way!)

D> << DiscreteMath`Combinatorica`
D> pair[i_, j_, n_] :=
D>   FromCycles[Join[{{i, j}}, Complement[ToCycles[Range[n]], {#} & /@
{i,
D> j}]
D>       ]
D>     ]
D> rowSwitch[m_, i_, j_] := m[[pair[i, j, Length[m]], All]]
D> columnSwitch[m_, i_, j_] := m[[All, pair[i, j, Length[m]]]]
D> rowSwitch[m, 1, 3] // MatrixForm
D> columnSwitch[m, 1, 3] // MatrixForm
D> rowSwitch[columnSwitch[m, 1, 3], 2, 4] // MatrixForm

D> Bobby Treat

D> -----Original Message-----
D> From: Christian Junk [mailto:junkc at fh-trier.de] 
To: mathgroup at smc.vnet.net
D> Sent: Monday, May 27, 2002 12:16 AM
D> Subject: [mg34608] [mg34542] basic operations in matrices

D> Hi!

D> I'm new to Mathematica and I'm searching for an operation, that
simply
D> transpose two rows or columns of a matrix M.

D> e.g:

D> Operation[M,{1,3}]

D> 1 1 1 1             3 3 3 3
2 2 2 2   --->>     2 2 2 2
D> 3 3 3 3             1 1 1 1
D> 4 4 4 4             4 4 4 4

D> Much thanks in advance,

D> Christian



Hi!

Thank you for your answer. It helped me a lot solving my problems with
Mathematica!

-- 
Christian Junk
mailto:junkc at fh-trier.de





  • Prev by Date: RE: RE: Why do parentheses spuriously appear when I type in a formula?
  • Next by Date: Re: Help! How to calculate additive partitions?
  • Previous by thread: RE: basic operations in matrices
  • Next by thread: Resultant of Interference Rules for Cellular Automata