matlab筛选一列数据,要求剔除连续N个以上的某个值,N个以下的保留?要剔除的值已知.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 23:19:57
matlab筛选一列数据,要求剔除连续N个以上的某个值,N个以下的保留?要剔除的值已知.

matlab筛选一列数据,要求剔除连续N个以上的某个值,N个以下的保留?要剔除的值已知.
matlab筛选一列数据,要求剔除连续N个以上的某个值,N个以下的保留?
要剔除的值已知.

matlab筛选一列数据,要求剔除连续N个以上的某个值,N个以下的保留?要剔除的值已知.
设原来数列是IN
需要剔除数值为V,长度超过N个数
b=[0;(IN(:)==V);0];
c=imopen(b,ones(N+1,1));
OUT=IN(~c(2:end-1));
OUT就是输出的序列

我想不出matlab有什么自带的功能函数来完成这个题目,所以自己写了一段,尽量避免用循环来查找,基本用逻辑运算完成了。这段代码估计我自己明天也看不懂了,希望你能看懂:
delnum = 4;
N = 3;% 连续三个以上就剔除
a = [ 4 4 4 1 3 5 4 4 4 1 5 4 4 4 4 3 4 4 2 4 4 4 ]
% ...

全部展开

我想不出matlab有什么自带的功能函数来完成这个题目,所以自己写了一段,尽量避免用循环来查找,基本用逻辑运算完成了。这段代码估计我自己明天也看不懂了,希望你能看懂:
delnum = 4;
N = 3;% 连续三个以上就剔除
a = [ 4 4 4 1 3 5 4 4 4 1 5 4 4 4 4 3 4 4 2 4 4 4 ]
% 首先找到所有要删除数字的位置
idx = find( a == delnum );
% 计算位置的差分,目的是找到delnum的连续规律,
% 差分为1的说明某个位置和下一个位置都是delnum,差分不为1说明delnum连续已中断
% 比如数组a里第三个和第九个位置都是一个差分连续中断点
df = [ diff( idx ), inf ];
% 找到差分的中断点,中断点也可以看做是某一小段连续数字的最后一个数的位置
% 为了计算方便,这里假定数组有一个位置0,也是一个中断点
% 所以在break_pos中加入这个假设中断点
break_pos = [ 0 find( df ~= 1 ) ];
% 找到连续N个以上都是4的中断点位置
exp_Pos = find( diff( break_pos ) >= N );
% 创建一个逻辑矩阵,用来标记那些位置需要删除
del_Pos = false( size( a ) );
% 满足要求的一个中断点到下一个中断点之间的位置都需要删除
for i = 1 : length( exp_Pos )
del_Pos( idx( break_pos( exp_Pos( i ) ) + 1 ) : idx( break_pos( exp_Pos( i ) + 1 ) ) ) = 1;
end
a( del_Pos ) = []
输出结果:
a =
4 4 4 1 3 5 4 4 4 1 5 4 4 4 4 3 4 4 2 4 4 4
a =
1 3 5 1 5 3 4 4 2

收起

用find(A>B),可以解决你的问题。

matlab筛选一列数据,要求剔除连续N个以上的某个值,N个以下的保留?要剔除的值已知. Matlab如何将一列中的数据剔除重复项呢?有如下数据Cell列A:湖南湖北山东湖南山东如何得到新列B:湖南湖北山东 您知道在matlab中进行四维插值的命令是什么吗?就是有x,y,z三列不同数据,与另外一列数据n进行插值类似于三维的griddata命令.要求画出等值线或者四维立体图. matlab 数据筛选问题有一组点的数据[x,y],需要筛选 满足0.9*x(i+1) 在Matlab中对一个3*10的矩阵,运用3sigma法则剔除粗大误差,最终的输出矩阵要求剔除的数据赋值为0其他输出在提粗粗大误差的过程中,希望每次在计算出残差后,找出绝对值最大的残差,和3倍的标 excel怎么计算符合要求的单元格的数目(筛选数据后)原来同一列中我填充了10000多个数据,经过筛选得到了大于等于0的数据,想统计下这些数据的个数,但是不知道怎么做,反正不能一个一个的 matlab求数值微分有一系列散点数据,要求第一列对第二列求导,求各点的导数,请问如何用matlab求? matlab 找同一列连续相同数的个数11121213131313141421222331313132某一列数据如上,如何用matlab编程寻找此列中连续相同的数的个数,比如12 13 14 31. matlab 筛选数据 筛选一个矩阵文件是EMAG2.txt ,里面是x,y,z的三列数据.要求:提取所有-85≤x≤-30;-60≤y≤15;的数据,并且输出到新的txt文件中.或者帮我改一下clc;clear;fin=fopen('EMAG2.txt','r');fout=fopen(' 有两列数据进行筛选有两列数据,进行筛选,结果前面一列的筛选出来的结果比后面一列的少,当第二列筛选 出来的时候发现,第一列筛选出来的比第二列多的数据不能显示,请问有什么办法可以 matlab 中求一列数据众数的函数有木有! Matlab 中要对一列数据进行n次抽样,该怎么写程序,是要用到哪个函数吗?谢谢! 用MATLAB如何读取EXCEL里某任意长度的一列数据?比如,当从EXCEL里的第A列某行(如第3行)起,输入了一列长度不确定的数据(假设有n列数据,n的数量跟具体情况有关),也就是说如何将这n列数据 两列数呈对应关系,如何将第一列中的整数及其在第二列中对应的数据筛选出来 关于matlab画概率密度一组数据要求画直方图,纵轴是概率密度(=概率/组距)hist命令纵轴是频数,而bar命令横轴不是连续的.求问如何用matlab实现, 对一组数据进行连续分段筛选,类似0-10,10-20,20-30.并输出计数结果,即各段包含几个数.因为数据很多,表格中的数据筛选 数据透视表的筛选条件中如何筛选日期在2007中有如下一张表格需要使用数据透视表进行统计工作:但是透视表的日期筛选条件不能像数据表的日期筛选那样进行实现连续日期区间的筛选,而 excel中查找某列大于某数的数据,用筛选好像不行,如何实现两列数据将一列排序时,另一列跟着相应变化.