Matjaz Bezovnik wrote:

If you are using numpy (which it sounds like you are):

IDLE 2.6.2
>>> import numpy as np
>>> v = np.array([[0,1,2],[3,4,5],[6,7,8]], dtype=float)
>>> v
array([[ 0.,  1.,  2.],
       [ 3.,  4.,  5.],
       [ 6.,  7.,  8.]])
>>> w = np.array([[10,11,12],[13,14,15],[16,17,18]], dtype=float)
>>> w
array([[ 10.,  11.,  12.],
       [ 13.,  14.,  15.],
       [ 16.,  17.,  18.]])
>>> r = np.zeros((6,6))
>>> r
array([[ 0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.]])
>>> r[:3,:3] = v
>>> r
array([[ 0.,  1.,  2.,  0.,  0.,  0.],
       [ 3.,  4.,  5.,  0.,  0.,  0.],
       [ 6.,  7.,  8.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.]])
>>> r[3:,3:] = w
>>> r
array([[  0.,   1.,   2.,   0.,   0.,   0.],
       [  3.,   4.,   5.,   0.,   0.,   0.],
       [  6.,   7.,   8.,   0.,   0.,   0.],
       [  0.,   0.,   0.,  10.,  11.,  12.],
       [  0.,   0.,   0.,  13.,  14.,  15.],
       [  0.,   0.,   0.,  16.,  17.,  18.]])
>>>

In general, make the right-sized array of zeros, and at various points:
and you can ssign to subranges of the result array:

    N = 3
    result = np.zeros((len(parts) * N, len(parts) * N), dtype=float)
    for n, chunk in enumerate(parts):
        base = n * 3
        result[base : base + 3, base : base + 3] = chunk

--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to