完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
使用matlab编写一个处理数据的程序,想要具体算法是将一个excel表格中的数据第s,s+1,s+2这三个数进行比较(当然这里的s是从1取到最后的),然后如果s比s+1和s+2的和还要大,就令s等于s+1与s+2的平均值。然后判断整个数据中是否还存在这样的数据,在次进行处理,直到没有要处理的数据,将处理好的数据图像输出。我写了一个程序,但是好像有些问题,求大神给看看啦。
程序如下 date=xlsread('excel.xls');%对一个图进行处理。进行多次处理 n=size(date);%date的维数,通过维数判断要画出多少个图(有几列就是要画几个图),行数就是x的元素 n1=n(1,2);%n1是列数,画图的个数 m=n(1,1)-1; x=(0:m);%画图时x从0到m一共n(1,1)个数 M=m-1;%因为后面有s+1和s+2所以这里要再减1 for d=1:n1; i=1; %i为判断是否完成运算的标识位, while i q=0; for s=1:M;%将第d列的数据处理一遍 i=0; Date1=date(:,d); Datemax(s,1)=Date1(s,1);%第s行的值 Datemax1(s,1)=Date1(s+1,1);%第s+1行的值 Datemax2(s,1)=Date1(s+2,1);%第s+2行的值 if Datemax(s,1)>Datemax1(s,1)+Datemax2(s,1)%第s行比s+1行和s+2行的和还大,我们就将其舍去 Datemax(s,1)=(Datemax1(s,1)+Datemax2(s,1))/2; q=1;%是否进行数据处理的标志位 end end if q==1 i=1; end Datemax(s+1,1)=date(end-1,d); Datemax(s+2,1)=date(end,d); Date1=Datemax; end p=0:M+1; subplot(n1,1,d) plot(p,Datemax,':ok',x,Date1,'r') end |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
我用matlab的coder 封装了一个c语言的dll, 但是在用labview调用时,会出现识别不到库的问题,有大神遇到过吗
2645 浏览 0 评论
5229 浏览 0 评论
在matlab中如何计算含有第一类修正的贝塞尔函数的积分算不出的问题?
9025 浏览 0 评论
怎么利用matlab得到95%,80%和70%的置信区间,并生成不同区间下的功率误差贝塔分布?
10466 浏览 0 评论
请问simulink的s-function模块如何添加多输入输出接口
14632 浏览 2 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 16:53 , Processed in 0.783397 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2689