相关疑难解决方法(0)

在Matlab/Octave中从向量中识别(和移除)序列

我试图从Matlab(或Octave)中的数字向量中修剪任何长度为3或更长的序列.例如,给定的矢量数据集,

dataSet = [1 2 3 7 9 11 13 17 18 19 20 22 24 25 26 28 30 31];
Run Code Online (Sandbox Code Playgroud)

删除长度为3或更长的所有序列将产生prunedDataSet:

prunedDataSet = [7 9 11 13 22 28 30 31 ];
Run Code Online (Sandbox Code Playgroud)

我可以强制解决方案,但我怀疑使用向量/矩阵操作有一种更简洁(也许是有效)的方法,但我总是对某些东西产生索引或所述索引的值感到困惑.建议?

这是我提出的蛮力方法:

dataSet = [1 2 3 7 9 11 13 17 18 19 20 22 24 25 26 28 30 31];
benign = [];
for i = 1:size(dataSet,2)-2;
    if (dataSet(i) == (dataSet(i+1)-1) && dataSet(i) == dataSet(i+2)-2);
        benign = [benign i ] ;
    end;
end; …
Run Code Online (Sandbox Code Playgroud)

matlab octave

4
推荐指数
1
解决办法
1475
查看次数

标签 统计

matlab ×1

octave ×1