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.

댓글 수: 3

30482 does not divide evenly into 8160,
30482/8160
ans = 3.7355
so your intended rule for reorganizing this data is not clear.
Fangjun Jiang
Fangjun Jiang 2022년 7월 26일
reshape()
dpb
dpb 2022년 7월 26일
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
dpb 2022년 7월 26일

0 개 추천

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
>>

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

제품

릴리스

R2015a

질문:

2022년 7월 26일

댓글:

2022년 7월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by