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
def isfullcomplex(x): try: return dims_has_complex(x.dims) except AttributeError: return False
def _helper_false(self, dims): self.assertFalse(dims_has_complex(dims))
def _helper(self, dims): self.assertTrue(dims_has_complex(dims))