atwo to a one dimentional vector in Matlab

Bob (view profile)

on 23 May 2012
How would I get a one dimentional vector in Matlab, so that when I type size(x) the size is, for example, 10 and not 1 by 10?

James Tursa

James Tursa (view profile)

on 23 May 2012
Maybe use the numel function instead.

Sean de Wolski (view profile)

on 23 May 2012

That is not possible unless you define your own class that will internally store the vector as a 1x10 but display 10 when queried for size or if you write your own size function.
Otherwise, every vector, scalar, matrix etc has at least two dimensions in size.

Walter Roberson (view profile)

on 23 May 2012

You cannot. All arrays in MATLAB show up as 2 or more dimensions for the purposes of size. You can, however, get a column vector.
x = 1 : 10;
size(x)
x1 = x(:);
size(x1)
If you have a row vector, you can use the .' operator to turn it into a column vector:
x = 1 : 10;
size(x)
x1 = x.';
size(x1)
You can construct a column vector directly:
x = (1 : 10).'
size(x)
x = [1; 2; 3; 4; 5];
size(x)