| 查看: 332 | 回复: 1 | |||
[求助]
帮忙看看matlab程序
|
|
现在有一从excel导入的两列数据(data),可以画二维图,假定横轴为等时间间隔采点,现希望用Matlab用最少的点再现原图。具体方法如下:第一数据(x1,y1)确定保留,让(x2,y2)中的y2值与y1对比,如果y2-y1的绝对值大或等于0.0002,则保留(x2,y2)数据,然后再用(x3,y3)中y3与y2对比;反之,如y2- y1的绝对值小于0.002,则抛弃(x2,y2)数据,然后用(x3,y3)的y3与y1对比看绝对值是否大于0.00002。一直继续下去,存在二维数组中,最后画图对比。可给出二维数组的处理前后的个数以及具体数值,下面有相关的数据和程序,但是处理后的具体数值和个数无法显示,请帮忙看看。谢谢! x = data(:,1); y = data(:,2); A=length(x) subplot(2,2,1); plot(x,y,x,y,'o'); zx =zeros(length(x),1); zy =zeros(length(y),1); h = 1; zx(1) = x(1); zy(1) = y(1); for k = 2:length(x) if abs(y(k)-zy(h)) >= 0.0002 h = h+1; zx(h) = x(k); zy(h) = y(k); end subplot(2,2,2); plot(zx,zy,zx,zy,'o'); end ********************************************************** 5.008124936 -6.0395E-05 10.0000227 0.000102462 10.00032039 0.499913335 30.01483456 0.500076175 50.02924361 0.500076175 70.04370895 0.499913335 90.05820166 0.500076175 110.0727354 0.500239015 130.0871305 0.499913335 150.1016011 0.499913335 170.1160851 0.499750465 190.1306742 0.500076175 210.1450497 0.500076175 230.1594895 0.500239015 250.1740121 0.499913335 270.1885256 0.500076175 290.2029319 0.500076175 310.0146066 0.500076175 310.0304182 5.000491142 330.0449087 5.000654221 350.0593917 5.000654221 370.0738571 5.000491142 390.0883398 5.000491142 410.1028344 5.000654221 430.1172752 5.000654221 450.13178 5.000654221 470.1462329 5.000491142 490.1607997 5.000491142 510.1751916 5.000491142 530.1896607 5.000491142 550.204117 5.000491142 570.2185938 5.000491142 590.233066 5.000491142 610.0291657 5.000491142 610.0294107 -0.49970841 630.0439261 -0.49987125 650.0584147 -0.49987125 670.0729161 -0.49987125 690.0874247 -0.49970841 710.1018117 -0.49987125 730.1162976 -0.49987125 750.1308117 -0.49987125 770.1452522 -0.49987125 790.1597206 -0.49987125 810.1741984 -0.49987125 830.188647 -0.49987125 850.2031966 -0.49987125 870.2176234 -0.49987125 890.2321767 -0.49987125 910.0436822 -0.49987125 |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有8人回复
最失望的一年
已经有17人回复
为什么nbs上溴 没有产物点出现呢
已经有6人回复
求推荐博导
已经有4人回复
存款400万可以在学校里躺平吗
已经有34人回复
求助一下有机合成大神
已经有4人回复
求推荐英文EI期刊
已经有5人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
疑惑?
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
帮忙看看博导的回复
已经有8人回复
大家爱帮我看看这段MATLAB程序为啥出错了
已经有5人回复
求助matlab一程序运行的问题,帮忙看看哪里不对
已经有4人回复
帮忙看看这个平面图用matlab怎么画
已经有19人回复
请帮忙看看这是几个A
已经有10人回复
再次问如何显示function里面的变量(附论文和相应的程序)
已经有8人回复
帮帮忙看看我的难题
已经有15人回复
【求助】帮忙看看这是什么材料
已经有14人回复
【求助】MATLAB 有限差分法(FDM)求解偏微分方程
已经有22人回复
虫友们帮忙看看审稿意见哦
已经有13人回复
帮忙看看,是不是没上会?
已经有30人回复
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
btliu: 金币+7, ★★★很有帮助, 最后如何显示zx,zy以及对应数组的个数?便于与未处理前对比。非常谢谢! 2012-12-04 21:10:07
btliu: 金币+3, ★★★很有帮助, 谢谢 2012-12-16 10:25:13
感谢参与,应助指数 +1
btliu: 金币+7, ★★★很有帮助, 最后如何显示zx,zy以及对应数组的个数?便于与未处理前对比。非常谢谢! 2012-12-04 21:10:07
btliu: 金币+3, ★★★很有帮助, 谢谢 2012-12-16 10:25:13
|
试试看这段代码 load data; x = data(:,1); y = data(:,2); A=length(x); subplot(2,2,1); plot(x,y,x,y,'o'); zx =zeros(length(x),1); zy =zeros(length(y),1); h = 1; zx(1) = x(1); zy(1) = y(1); tempy=y; for k = 2:length(x) if abs(y(k)-tempy(h)) >= 0.0002 zx(h) = x(k); zy(h) = y(k); h = h+1; end end zx=zx(1:h-1); zy=zy(1:h-1); subplot(2,2,2); plot(zx,zy,zx,zy,'o'); |
2楼2012-12-04 13:59:36













回复此楼