RE: basic operations in matrices
- To: mathgroup at smc.vnet.net
- Subject: [mg34569] RE: [mg34542] basic operations in matrices
- From: "DrBob" <majort at cox-internet.com>
- Date: Wed, 29 May 2002 02:44:08 -0400 (EDT)
- Reply-to: <drbob at bigfoot.com>
- Sender: owner-wri-mathgroup at wolfram.com
Christian,
In the following, I've generated a matrix of symbols (m). Then I show m
first with the second and third columns switched, then with the second
and third rows switched.
Remove["Global`*"]
letters = {"a", "b", "c", "d"};
m = (Unique /@ letters) & /@ Range[4];
m // MatrixForm
m[[All, {1, 3, 2, 4}]] // MatrixForm
m[[{1, 3, 2, 4}, All]] // MatrixForm
There are other ways, but I think this is the easiest.
Here are functions to switch any two rows or columns. (This may not be
the easiest way, but it's an interesting way!)
<< DiscreteMath`Combinatorica`
pair[i_, j_, n_] :=
FromCycles[Join[{{i, j}}, Complement[ToCycles[Range[n]], {#} & /@ {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: [mg34569] [mg34542] basic operations in matrices
Hi!
I'm new to Mathematica and I'm searching for an operation, that simply
transpose two rows or columns of a matrix M.
e.g:
Operation[M,{1,3}]
1 1 1 1 3 3 3 3
2 2 2 2 ---> 2 2 2 2
3 3 3 3 1 1 1 1
4 4 4 4 4 4 4 4
Much thanks in advance,
Christian