MATLAB Answers

atwo to a one dimentional vector in Matlab

1 view (last 30 days)
Bob
Bob 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?

  1 Comment

James Tursa
James Tursa on 23 May 2012
Maybe use the numel function instead.

Sign in to comment.

Answers (3)

Sean de Wolski
Sean de Wolski 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.

  0 Comments

Sign in to comment.


Walter Roberson
Walter Roberson 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)

  0 Comments

Sign in to comment.


Jan
Jan on 24 May 2012
Although Sean and Walter have stated it already, I repeat it again: "Mat"lab has been designed as "Matrix" calculator, therefore all arrays have been matrices at first. After Matlab 4.1 multidimensional arrays have been added, but the matrix like shape of vectors has not been removed due to backward compatibility.

  0 Comments

Sign in to comment.

Sign in to answer this question.


Translated by