最近帮朋友写了个matlab筛选数据的程序,程序为从二维数据中,对两个变量均设置范围和允许误差,筛选出符合要求的数据,话不多说,上code:

%%%%%%%%%%%%%%%%%%%%数据处理问题
%解决问题:输入所需频率信息,搜索出在该频率下某个文件中确定组数中相位为确定的数据,本代码适合于两组文件
%所需输入及修改数据:
%修改文件路径
%输入所需要搜索的频率信息freobj
%输入所需要搜索的相位信息phaobj
%输入频率允许误差范围eps
%输入相位允许误差范围peps
clear all;
clc;
A1=xlsread('C:\Users\sdwan\Desktop\reflect-45.xlsx');
A2=xlsread('C:\Users\sdwan\Desktop\reflect45.xlsx');
A3=zeros(3,2);%A3的目的是为了组合两个文件
A=[A1;A3;A2];
size_A1=size(A1);
size_A2=size(A2);
data1_num=(size_A1(1,1)+3)/204;
data2_num=(size_A2(1,1)+3)/204;
Frequency=A(:,1);
Phase=A(:,2);
size_Frequency=size(Frequency);
Group_number=(size_Frequency(1,1)+3)/204;
%输入频率各组数据
fre=[];
fre(:,1)=Frequency(1:201);
for p=2:Group_number %Group_number是组数fre(:,p)=Frequency(201*(p-1)+3*(p-1)+1:201*(p-1)+3*(p-1)+201);
end
%输入相位各组数据
pha=[];
pha(:,1)=Phase(1:201);
for q=2:Group_number %350是组数pha(:,q)=Phase(201*(q-1)+3*(q-1)+1:201*(q-1)+3*(q-1)+201);
end%组合数据,频率相位保存为列向量
z=[];
z(:,1)=fre(:,1);
z(:,2)=pha(:,1);for r=3:2:Group_number*2-1%总的组数乘2减一
z(:,r)=fre(:,(r+1)/2);
z(:,r+1)=pha(:,(r+1)/2);
end
%输入允许的误差范围
% fprintf("请输入频率所允许的误差:");
eps=input('请输入频率所允许的误差:');%%%%%%%%%%%%%自己设置!
%设置所需的筛选频率
% fprintf("请输入所要筛选的频率:");
freobj=input('请输入所要筛选的频率:');%%%%%%%%%%%%%%自己设置!
n=Group_number*2;
%判断 其中n为数据组数量的两倍
ff=zeros(201,n);%ff矩阵存储频率信息201 700为z矩阵行列数
pp=zeros(201,n);%pp存储相位信息
m=zeros(201,n);for j=1:2:n%j为列同时为数据组for i=1:201%i为行if(abs(z(i,j)-freobj)<=eps)m(i,j)=z(i,j);m(i,j+1)=z(i,j+1);%将符合条件的数据对保存在m矩阵中endend
endfor k=2:2:n%处理相位为负的数据,k为列for r=1:201%r为行     if(m(r,k)==0)m(r,k)=999999;else if(m(r,k)<0)m(r,k)=m(r,k)+360;endendendend%peps为相位所允许的误差
% fprintf("请输入相位所允许的误差:");peps=input('请输入相位所允许的误差:');%%%%%%%%%%%自己设置!
%phaobj为目标相位
% fprintf("请输入目标相位:")phaobj= input('请输入目标相位:');%%%%%%%%for s=2:2:n%列for t=1:201%行if(s/2<=data1_num)%data1_num为第一组有的数据组数num=s/2;str="reflect.-45"; elseif(s/2>data2_num)num=s/2-data2_num;str="reflect.45";endif(abs((m(t,s)-phaobj))<peps)fprintf("来自%s文件中第%d组的数据,频率为%d,相位为%d,符合要求",str,num,m(t,s-1),m(t,s));
%             fprintf("来自第%d组的数据,频率为%d,相位为%d,符合要求",s/2,m(t,s-1),m(t,s));fprintf("\n");endend
end

需要说明的是:朋友的数据是每一组中有201个数据,不同excel文件中的组数是可以随意的,但必须每组的数据都是201个,当然,朋友们要是需要筛选不同个数的数据可以设置个变量,将code中的201全部换为变量,即可实现任意组数,每组中任意个数据的筛选问题,大家有需要自取。

利用Matlab筛选给定条件的数据相关推荐

  1. R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数

    R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数 目录

  2. 利用Matlab编程实现对NetCDF数据针对某一坐标按时间提取风、流、水蒸气等变量信息

    一.NetCDF数据介绍 NetCDF(network Common Data Form)网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmosph ...

  3. mysql 对表数据进行求和分组并在结果中筛选符合条件的数据 having group by count

    查询table表查询每一个班级中年龄大于20,性别为男的人数 select COUNT(*)as '大于20岁人数',classid  from Table1 where sex='男' group ...

  4. pb利用datawindow查询符合条件的数据并且过滤掉其他数据_数据质量监测

    1 Overview 1.1 数据质量 在数据部门里,数据质量问题经常是被动发现,所以数据质量的问题是大多数公司数据部门都不得不面对的问题.数据质量校验的目标是监控数据管道中,生产者.处理阶段以及消费 ...

  5. pb利用datawindow查询符合条件的数据并且过滤掉其他数据_牟宇航:百度OLAP数据库——Palo...

    专家视野 | 牟宇航:百度OLAP数据库--Palo https://mp.weixin.qq.com/s/q8_kdDPdCPwIjI2BCETPZw 3月28日,在工业和信息化部的指导下,为期两天 ...

  6. pb利用datawindow查询符合条件的数据并且过滤掉其他数据_eBay将CAL上PB级的日志存储迁移到Ceph的实践...

    供稿 | Unified Monitoring Platform 翻译&编辑 | 顾欣怡 本文3663字,预计阅读时间11分钟 本文转载自"eBay技术荟",更多干货请关注 ...

  7. 一个关于将满足给定条件的数据按顺序写到另一文件中的C语言函数。

    已知数据文件IN37.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:如果一个4位数的千位数字上的值加十位数字上的值恰好等于百 ...

  8. Python处理2个表格。从源表格中筛选符合条件的数据,写入到dst表格中

    需求介绍:两个表格:srcData表格和dstData表格.将src表格中同一时刻的数据写入dst表格对应的行中. #!/usr/bin/env python # -*- coding: utf-8 ...

  9. 利用matlab从TXT中读数据1

    TXT是纯文本文件,常用的几种函数有load函数,importdata函数,dlmread函数,textread函数. 科学计数法如1.03乘10的8次方,可简写为"1.03e+08&quo ...

  10. 利用Matlab把fig图的数据导出来

    第一步:把fig文件复制到新创建matlab文件的目录下 第二步:复制以下代码到自己新创建的matlab文件中 clc; clear all; close all; syms x h=open('这里 ...

最新文章

  1. 收藏 | 图像识别的可视化解释神经网络
  2. FPGA之道(57)状态机的实现方式
  3. oracle 之 using 使用
  4. 改了一行代码,MySQL查询效率提升了80%,老板奖了我50万
  5. 第九集 生死穿越风火山,感受尘世间轮回
  6. 漫画:程序员真的是太太太太太太太太难了!
  7. C#用注册表开机自动启动某某软件
  8. Bootstrap 多媒体对象(Media Object)
  9. eclipse插件开发总结
  10. 基于PHP的个人博客系统的设计与开发(含源文件)
  11. 2022年新出的Python学习神器,强烈推荐
  12. 小米手机与计算机如何连接网络连接,小米手机连接不上电脑怎么办 图文教你小米手机怎么连接电脑...
  13. emc re 整改 超标_CE认证EMC测试不合格,如何整改 ;
  14. 999宝藏网ghostxp-sp2(圣诞+纯净版)
  15. 宝塔linux面板 伪静态,AMH主机面板伪静态规则大全,
  16. 前端进行身份证验证(详细)
  17. 商务周刊封面:别了,摩托罗拉
  18. centos怎么把计算机调到桌面,CentOS下命令行和桌面模式的切换方法
  19. 事情往往不是想的那么糟
  20. 遇到不同网段互相访问的一些问题的总结

热门文章

  1. 提取酷我音乐MP3外链地址 可放到QQ空间做背景音乐
  2. 真是绝了,做了这么多年程序员第一次搞懂微服务架构的数据一致性
  3. python图片转换成文字的手机软件_怎么把手机里的图片转换成WORD?迅捷文字识别帮你解决!...
  4. MODELSIM报错合集
  5. 7-1 循环-Fibonacci数列的运算 (50 分)
  6. Unity直线轨迹导弹预判
  7. pycharm官方下载库很慢、会失败的解决方法
  8. 离散数学3_第1章__一些重要的重言蕴涵式__推理定律
  9. 品牌建设—长效且动态的关系管理进程:赫联电子亚太区
  10. php随笔_PHP随笔笔记