Discussion:
Mathematica 6.0 and MatrixManipulations
(too old to reply)
Michael
2007-05-17 10:15:10 UTC
Permalink
Hi,

In Mathematica 6.0, I notice that the instruction

In[1]:= Needs["LinearAlgebra`MatrixManipulation`"];

produces the following warning:

"General::obspkg: LinearAlgebra`MatrixManipulation` is now obsolete.
The legacy version being loaded may conflict with current Mathematica
functionality. See the Compatibility Guide for updating information."

In fact, a lot of my 'favourite' methods, "BlockMatrix", "ZeroMatrix",
etc. no longer are even documented in the help browser, nor is the
package MatrixManipulation.

My previous version was Mathematica 5.2, and so what *should* I be
using now instead of "BlockMatrix", "ZeroMatrix", etc.? Thus far, I
haven't been able to find any information about obsolesced functions
within the help browser (F1).

Any suggestions or help would be greatly appreciated!

Thanks,

Michael
Jens-Peer Kuska
2007-05-18 10:01:27 UTC
Permalink
Hi,

if you load the package you got the message but ZeroMatrix[]
is still working and asking for BlockMatrix[] gives

BlockMatrix[block] is an obsolete function. Use ArrayFlatten[block] \
instead.

and this will probalbly answer your question
"... what *should* I be using now instead of "BlockMatrix",
"ZeroMatrix", etc.? "

and forgot the Help Browser -- the good old Information[] is
mutch better ...

Regards
Jens
Post by Michael
Hi,
In Mathematica 6.0, I notice that the instruction
In[1]:= Needs["LinearAlgebra`MatrixManipulation`"];
"General::obspkg: LinearAlgebra`MatrixManipulation` is now obsolete.
The legacy version being loaded may conflict with current Mathematica
functionality. See the Compatibility Guide for updating information."
In fact, a lot of my 'favourite' methods, "BlockMatrix", "ZeroMatrix",
etc. no longer are even documented in the help browser, nor is the
package MatrixManipulation.
My previous version was Mathematica 5.2, and so what *should* I be
using now instead of "BlockMatrix", "ZeroMatrix", etc.? Thus far, I
haven't been able to find any information about obsolesced functions
within the help browser (F1).
Any suggestions or help would be greatly appreciated!
Thanks,
Michael
b***@gmail.com
2007-05-18 10:03:29 UTC
Permalink
Hi,
Well you can try the new ConstantArray function
and for the rest look in the help for
guide/NewIn60MatrixAndLinearAlgebraFunctions
you will find there "new" functions such as HilbertMatrix etc (towards the
bottom of the page)

yehuda
Post by Michael
Hi,
In Mathematica 6.0, I notice that the instruction
In[1]:= Needs["LinearAlgebra`MatrixManipulation`"];
"General::obspkg: LinearAlgebra`MatrixManipulation` is now obsolete.
The legacy version being loaded may conflict with current Mathematica
functionality. See the Compatibility Guide for updating information."
In fact, a lot of my 'favourite' methods, "BlockMatrix", "ZeroMatrix",
etc. no longer are even documented in the help browser, nor is the
package MatrixManipulation.
My previous version was Mathematica 5.2, and so what *should* I be
using now instead of "BlockMatrix", "ZeroMatrix", etc.? Thus far, I
haven't been able to find any information about obsolesced functions
within the help browser (F1).
Any suggestions or help would be greatly appreciated!
Thanks,
Michael
Carl Woll
2007-05-18 10:09:33 UTC
Permalink
Post by Michael
Hi,
In Mathematica 6.0, I notice that the instruction
In[1]:= Needs["LinearAlgebra`MatrixManipulation`"];
"General::obspkg: LinearAlgebra`MatrixManipulation` is now obsolete.
The legacy version being loaded may conflict with current Mathematica
functionality. See the Compatibility Guide for updating information."
In fact, a lot of my 'favourite' methods, "BlockMatrix", "ZeroMatrix",
etc. no longer are even documented in the help browser, nor is the
package MatrixManipulation.
My previous version was Mathematica 5.2, and so what *should* I be
using now instead of "BlockMatrix", "ZeroMatrix", etc.? Thus far, I
haven't been able to find any information about obsolesced functions
within the help browser (F1).
Any suggestions or help would be greatly appreciated!
Thanks,
Michael
At least for the two functions you mention, there are replacements
available in the kernel:

BlockMatrix --> ArrayFlatten
ZeroMatrix --> ConstantArray

Carl Woll
Wolfram Research
Sseziwa Mukasa
2007-05-18 10:10:34 UTC
Permalink
Post by Michael
Hi,
In Mathematica 6.0, I notice that the instruction
In[1]:= Needs["LinearAlgebra`MatrixManipulation`"];
"General::obspkg: LinearAlgebra`MatrixManipulation` is now obsolete.
The legacy version being loaded may conflict with current Mathematica
functionality. See the Compatibility Guide for updating information."
In fact, a lot of my 'favourite' methods, "BlockMatrix", "ZeroMatrix",
etc. no longer are even documented in the help browser, nor is the
package MatrixManipulation.
My previous version was Mathematica 5.2, and so what *should* I be
using now instead of "BlockMatrix", "ZeroMatrix", etc.? Thus far, I
haven't been able to find any information about obsolesced functions
within the help browser (F1).
Any suggestions or help would be greatly appreciated!
I happen to have stumbled across this problem as well. BlockMatrix,
AppendRows and AppendColumns are now all subsumed by ArrayFlatten.
There are subtle differences in how ArrayFlatten works compared to
BlockMatrix with regards to empty matrices but if you don't generate
such matrices you don't have to worry.

ZeroMatrix still works, it's just undocumented as far as I can tell.
There's a new function ConstantArray[val,{n1,n2,...}] which
generalizes ZeroMatrix.

If you're wondering how to find these functions start with a search
for array construction in the Help Browser. I sympathize with others
who've posted on this list over having to learn a different method
for using the Help Browser but I think after a few months of the
using the new features we'll wonder how we ever were productive the
old way, or maybe they'll reintroduce the old Help Browser.

Regards,

Ssezi
DrMajorBob
2007-05-18 10:31:11 UTC
Permalink
"General::obspkg: LinearAlgebra`MatrixManipulation` is now obsolete.
The legacy version being loaded may conflict with current Mathematica
functionality. See the Compatibility Guide for updating information."

And there IS no compatibility guide for this. (No link to it, and... if =
it =

exists... no clue how to find it.)

Bobby
Post by Michael
Hi,
In Mathematica 6.0, I notice that the instruction
In[1]:= Needs["LinearAlgebra`MatrixManipulation`"];
"General::obspkg: LinearAlgebra`MatrixManipulation` is now obsolete.
The legacy version being loaded may conflict with current Mathematica
functionality. See the Compatibility Guide for updating information."
In fact, a lot of my 'favourite' methods, "BlockMatrix", "ZeroMatrix",=
etc. no longer are even documented in the help browser, nor is the
package MatrixManipulation.
My previous version was Mathematica 5.2, and so what *should* I be
using now instead of "BlockMatrix", "ZeroMatrix", etc.? Thus far, I
haven't been able to find any information about obsolesced functions
within the help browser (F1).
Any suggestions or help would be greatly appreciated!
Thanks,
Michael
-- =

***@bigfoot.com
Michael
2007-05-18 10:39:31 UTC
Permalink
Hmm ...

Yesterday, after perusing version 6.0, it appears that "ArrayFlatten"
and "ConstantArray" are two new commands to be aware of. In the
online documentation, ArrayFlatten also will work with implicitly-
defined dimensions for zero matrices, such as the following case:

In1:= m = {{a,b},{c,d}};
In2:= newMat=ArrayFlatten[{{0,m,0},{0,0,m}}];

Neat!

Regards,

Michael
Post by Michael
Hi,
In Mathematica 6.0, I notice that the instruction
In[1]:= Needs["LinearAlgebra`MatrixManipulation`"];
"General::obspkg: LinearAlgebra`MatrixManipulation` is now obsolete.
The legacy version being loaded may conflict with current Mathematica
functionality. See the Compatibility Guide for updating information."
In fact, a lot of my 'favourite' methods, "BlockMatrix", "ZeroMatrix",
etc. no longer are even documented in the help browser, nor is the
package MatrixManipulation.
My previous version was Mathematica 5.2, and so what *should* I be
using now instead of "BlockMatrix", "ZeroMatrix", etc.? Thus far, I
haven't been able to find any information about obsolesced functions
within the help browser (F1).
Any suggestions or help would be greatly appreciated!
Thanks,
Michael
Mark Fisher
2007-05-19 09:17:22 UTC
Permalink
I see. And one can overload DiagonalMatrix to produce block-diagonal
matrices:

unprotected = Unprotect[DiagonalMatrix];
DiagonalMatrix[listOfBlocks : {__?MatrixQ}] :=
Block[{x}, With[{a = Array[x, Length[listOfBlocks]]},
ArrayFlatten[DiagonalMatrix[a] /. Thread[a -> listOfBlocks]]
]]
Protect[unprotected//Evaluate];

m1 = {{1,2},{3,4}};
m2 = {{5,6,7},{8,9,10},{11,12,13}};

DiagonalMatrix[{m1,m2}]

--Mark
Post by Michael
Hmm ...
Yesterday, after perusing version 6.0, it appears that "ArrayFlatten"
and "ConstantArray" are two new commands to be aware of. In the
online documentation, ArrayFlatten also will work with implicitly-
In1:= m = {{a,b},{c,d}};
In2:= newMat=ArrayFlatten[{{0,m,0},{0,0,m}}];
Neat!
Regards,
Michael
Post by Michael
Hi,
In Mathematica 6.0, I notice that the instruction
In[1]:= Needs["LinearAlgebra`MatrixManipulation`"];
"General::obspkg: LinearAlgebra`MatrixManipulation` is now obsolete.
The legacy version being loaded may conflict with current Mathematica
functionality. See the Compatibility Guide for updating information."
In fact, a lot of my 'favourite' methods, "BlockMatrix", "ZeroMatrix",
etc. no longer are even documented in the help browser, nor is the
package MatrixManipulation.
My previous version was Mathematica 5.2, and so what *should* I be
using now instead of "BlockMatrix", "ZeroMatrix", etc.? Thus far, I
haven't been able to find any information about obsolesced functions
within the help browser (F1).
Any suggestions or help would be greatly appreciated!
Thanks,
Michael
Loading...