Store vector data of not fixed length into a Matrix

조회 수: 4 (최근 30일)
Maximilian Arpaio
Maximilian Arpaio 2018년 9월 17일
편집: Maximilian Arpaio 2018년 9월 17일
Dear community, I am trying to store different vectors 1 x N inside a Matrix M x N. The issue in doing this is that the vectors have not the same length N (which is variable for each row) and thus each row M does not have the same number of columns N. I've tried to allocate a zero matrix in advance so that deltas could have been filled in by zeros, but it is not working. How can I overcome this ?
example: A=zeros (8) A(3)=[1 2 3 4] A(1)=[2 6 7 9] A(2)=[4 6 6 7 8 9 1 3]
A(3) and A(1) assignments are returning me an error while A(2) assignment not. For those arrays < 8 elements, I was hoping to get 0s as fill ups to comply to the matrix's length.
Please advise...

채택된 답변

John D'Errico
John D'Errico 2018년 9월 17일
편집: John D'Errico 2018년 9월 17일
You cannot store entire vectors into a double matrix as you tried to do. So this is impossible:
A(1)=[2 6 7 9]
A(2)=[4 6 6 7 8 9 1 3]
First, a flat (double precision) array cannot store multiple elements into a single element of that array. Second, an array cannot have rows (or columns) of different lengths.
You must either use a cell or struct array, or store the vectors properly inside a double array. So you COULD have done this:
A(1,1:4)=[2 6 7 9]
but then you are forced to know how long the vector is in advance.
A cell array is fully a better choice.
  댓글 수: 1
Maximilian Arpaio
Maximilian Arpaio 2018년 9월 17일
The hint about the cell array is something I was not thinking about ! Thanks a lot

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품


릴리스

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by