finding sub sequences of a data set
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Star Strider
el 8 de Nov. de 2019
You need to describe in detail what your data are, and what you want to do.
Respuestas (1)
Ajay Pattassery
el 11 de Nov. de 2019
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 comentarios
Walter Roberson
el 12 de Nov. de 2019
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
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!