Store vector data of not fixed length into a Matrix
2 views (last 30 days)
Show older comments
Maximilian Arpaio
on 17 Sep 2018
Edited: Maximilian Arpaio
on 17 Sep 2018
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...
Accepted Answer
John D'Errico
on 17 Sep 2018
Edited: John D'Errico
on 17 Sep 2018
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.
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!