# Convert vector to matrix

2 views (last 30 days)
Andres Ulloa on 26 Jul 2022
Commented: Andres Ulloa on 26 Jul 2022
How can I convert a vector of 30482x1 (it is the accumulated of 4 measurements of 17 min at 8 hz) to a matrix that has columns of 8160 data.
dpb on 26 Jul 2022
On top of which, given the statement that "it is ... 4 measurements of 17 min at 8 hz)"
>> mod(30482,4)
ans =
2
>>
so the list isn't a complete set of four.

dpb on 26 Jul 2022
Given the above problems regarding the number of elements in the vector vis a vis the number of channels (and it can't be there's a timestamp as it's also not divisible by five), the best you can do is something like
N=numel(x); % x is the data vector, determine how long it actually is
nCh=4; % the supposed number of channels/columns
M=N-mod(N,nCh); % how many nCh records there actually are
x=reshape(x(1:M),[],nCh); % keep M samples; reshape() to nCh columns
NB --
>> 8160*4
ans =
32640
>>
Andres Ulloa on 26 Jul 2022
Thank you so much!

### Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

R2015a

### Community Treasure Hunt

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

Start Hunting!