예제 #1
0
def change_shape(x, newdims):
    u"""Try to change shape of *x* to use newinfo.
       Bygger om en array sa att den matchar alla Axis objekt i *newinfo*
       listan. Nya dimensioner far langden 1 dvs. understatt repetion av
       arrayen i den dimension.

       Om newinfo innehaller nagon ComplexAxis sa gor vi forst om *x* med
       *make_complex_array*.

    """
    if dims_has_complex(newdims):
        x = make_fullcomplex_array(x)

    newself = x.view()
    newselfshape = []
    neworder = []
    selfdims = x.dims
    for dim in newdims:
        if dim in x.dims:
            newselfshape.append(x.shape[selfdims.matching_index(dim)])
            neworder.append(selfdims.matching_index(dim))
        else:
            newselfshape.append(1)
    newself = newself.transpose(*neworder)
    newself.shape = tuple(newselfshape)
    newself.dims = Dims(newdims)
    return newself
예제 #2
0
def isfullcomplex(x):
    try:
        return dims_has_complex(x.dims)
    except AttributeError:
        return False
예제 #3
0
 def _helper_false(self, dims):
     self.assertFalse(dims_has_complex(dims))
예제 #4
0
 def _helper(self, dims):
     self.assertTrue(dims_has_complex(dims))
예제 #5
0
 def _helper_false(self, dims):
     self.assertFalse(dims_has_complex(dims))
예제 #6
0
 def _helper(self, dims):
     self.assertTrue(dims_has_complex(dims))