On Wed, 12 Dec 2007, "Travis E. Oliphant" apparently wrote:
2) The matrix object made a C-subclass (for speed).
This will probably be the last chance for such a change, so I again hope that consideration will be given to *one* change in the matrix object: iteration over a matrix should return arrays (instead of matrices). So if A is a matrix, A[1] should be an array, but A[1,:] should be a matrix. Obviously this is an argument from design rather than from functionality. Current behavior is not "natural". E.g., it makes it awkward to iterate over all elements in the "natural" way, which I claim is:: for row in A: for element in row: print element This example is just meant to illustrate in a simple way what is "odd" about the current behavior. (It is not meant to be an "argument" nor to suggest that the current absence simple ways to do the same thing---e.g., using A.A.) Whenever I am working with matrices, I notice some aspect of this "oddity", and it is annoying when so much else is quite aesthetic. Cheers, Alan Isaac PS For those who do not know, here is an example of the current behavior. (The following prints 2 matrices instead of 4 elements.)
A = N.mat('1 2;3 4') for row in A: ... for element in row: ... print element ... [[1 2]] [[3 4]]