atwo to a one dimentional vector in Matlab

조회 수: 1 (최근 30일)
Bob
Bob 2012년 5월 23일
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
James Tursa
James Tursa 2012년 5월 23일
Maybe use the numel function instead.

댓글을 달려면 로그인하십시오.

답변 (3개)

Sean de Wolski
Sean de Wolski 2012년 5월 23일
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
Walter Roberson 2012년 5월 23일
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)

Jan
Jan 2012년 5월 24일
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.

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by