You can do it in one shot with:

x = np.vstack((Xstart, A[:, 0:1], Xend))

Using A[:, 0:1] instead of A[:, 0] lets you keep it as a 2d matrix (this
should answer your last question).
Then the scalars Xstart and Xend will automatically be broadcasted to
accomodate the shape of A[:, 0:1], so you don't need to write [[Xstart]]
and [[Xend]].

-=- Olivier

2011/12/4 Santhosh R <[email protected]>

> Hi ,
>
> I am trying to learn python to convert some of my mlab codes to python.Am
> new to python.Some help here would be appreciated
>
> I am trying to make a column vector by stacking two scalars-->Xstart,Xend
> and second column of n X 2 2Darray-->A
>
> In matlab the code is b=[Xstart;A(:,1);Xend]
>
> I have made the following code
>
> import numpy as np
> x=np.array([[Xstart]])
> arr_temp=np.array([A[:,0]])
> x=np.vstack((x,arr_temp.T))
> x=np.vstack((x,[[Xend]]))
>
> This works, but is there a more elegant way of doing this.
> Also if i define arr_temp as   arr_temp=A[:,0], the array arr_temp which
> is supposed to be of shape (n,1) shows as (n,) .Why is this
>
>
> Thanks
>
> Santhosh
>
> _______________________________________________
> NumPy-Discussion mailing list
> [email protected]
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to