多语言展示
当前在线:640今日阅读:138今日分享:34

如何分片区地提取一个长序列中的一部分元素

用matlab提取一个长长的数据序列中的等间隔的提取区块元素,比如第[4 5 6]  [14 15 16]等。请看本次分解。
工具/原料

matlab

方法/步骤
1

首先需要掌握的知识:1、[m,n]=size(a)求a矩阵的行、列值并分别赋值给m和n。2、如果是一个向量,求长度的函数为length,如m=length(b)3、改变矩阵形状的函数reshape,reshape(a,m,n)是把a变成一个m*n的矩阵,前提是要知道a的矩阵规模。

2

举例:我们从矩阵a是一个很长的列向量说起。如果a是一个矩阵,可以用reshape先把它变成向量。

3

a=1:12*300;  %比如a是一个每天12个点,一共300天的数据m=length(a);%先求一下矩阵规模b=reshape(a,12,m/12);%b成为一个12行的矩阵,a的前k(k<12)个元素,是b的第一列的前k个元素%也就是说,b矩阵的获得,是按照把a的所有元素按列来一列一列填满的,不是按行逐个填。c=b([6 7 8],:);%取区块,比如每天的第6--8个采样点%把c再变成列向量[m,n]=size(c);d=reshape(c,m*n,1);

注意事项

在数据序列处理中,掌握这一点很有帮助

推荐信息