finding sub sequences of a data set
3 ビュー (過去 30 日間)
古いコメントを表示
clc
clear
ts = xlsread('SwedishLeaf_TRAIN.xlsx');
l=length(ts);
for i = 1:500
p=ts(i,:)
for ii = 1:129
subSequence(ii,:) = p((ii-1)*30+ 1:ii*30);
end
I used the above code for finding the subsequences,but it not working.How can I find the subsequence of this.
4 件のコメント
Star Strider
2019 年 11 月 8 日
You need to describe in detail what your data are, and what you want to do.
回答 (1 件)
Ajay Pattassery
2019 年 11 月 11 日
I assume you want to extract a sub-vector of length 30 from each row. But the total length of the column is 129 which is not divisible by 30. Hence the 5th sub-vector will take 21 elements from the second row and it goes on.
subsequence = (reshape(ts',30,[]))'
If you have a constraint to keep the column length 129 and wish to have sub-parts elements from the same row together, you could split the matrix into two parts. One exactly divisible by 30.
ts1 = ts(:,1:120);
Subsequence1 = (reshape(ts1',30,[]))';
Subsequence2 = ts(:,121:end);
Here Subsequence1 will be 2000x30 and Subsequence2 will have the remaining elements of each row.
9 件のコメント
Walter Roberson
2019 年 11 月 12 日
buffer() from the signal processing toolbox is useful. But otherwise mat2cell()
L = length(Ts1);
BL = 30;
if mod(L, BL)
Sequences = cell2mat(Ts1, 1, [BL * ones(1, floor(L/BL)), mod(L,BL)]);
else
Sequences = cell2mat(Ts1, 1, BL * ones(1, floor(L/BL)));
end
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!