#!/usr/bin/env python
# (C) 2000 Huaiyu Zhu <hzhu@users.sourceforge.net>. Licence: GPL
# $Id: test_slice.py,v 1.2 2000/07/26 20:58:27 hzhu Exp $
"""
Test slicing for Matrix module
Note that getslice and setslice is only used for 1d arrays.
For higher dim, the getitem and setitem are used with slice objects.
"""
class A:
def __getitem__(self, *i): print "getitem", i
def __setitem__(self, *i): print "setitem", i
def __getslice__(self, *i): print "getslice", i
def __setslice__(self, *i): print "setslice", i
a = A()
a[1]
a[1] = 2
a[1:2]
a[1:2] = 3
a[1,2]
a[1,2] = 3
a[1,2:3]
a[1:2, 3]
a[1:2, 3] = 4
a[1, 2:3] = 4
a[1:2, 3:4]
a[1:2, 3:4] = 5
#------------------------------------------------------------------
from MatPy.Matrix import *
print "-"*40, "row vectors"
a = rand(6)
print a
print a[1]
a[1] = 2
print a
print a[1:4]
a[1:4] = [2,3,4]
print a
print "-"*40, "column vectors"
a = rand(6).T
print a
print a[1]
a[1] = 2
print a
print a[1:4]
a[1:4] = [2,3,4]
print a
print "-"*40, "matrices items"
A = rand((4,4))
print A, A.__class__
print A[1,2]
A[1,3] = 3
print A
print "-"*40, "matrices slices"
print A[1, 2:4]
A[1, 2:4] = [1,2]
print A
print "-"*40, "vectors as submatrices"
print A[0,:]
print A[:,0]
print "-"*40, "matrices slices"
print A[1:3, 2:4]
A[1:3, 2:4] = zeros((2,2))
print A
|