MATLAB,有大神分享的代码后如何制作GUI,做出图形?
http://www.ilovematlab.cn/thread-39959-1-1.html 网站上的代码就是我需要的,急,可以加分~~~!! 展开
楼上的太想当然了,不是所有M文件有代码就能够运行的。
从楼主所给地址的代码看,很明显是用GUIDE做的。MATLAB中使用GUIDE做GUI,除了M文件之外,还需要附带一个fig文件,而且fig文件在不同的MATLAB版本中可能存在兼容性问题(这也是我不太喜欢用GUIDE做界面的一个重要原因)。
原作者只上传了代码,而没有fig文件,楼主当然是没法用的。我根据原贴的界面贴图以及M文件的代码结构,大致上能判断出fig文件应该怎样做,试着做了一下,如图所示:
程序作为附件上传。说明几点:
1、程序中使用全局变量Po、Rt,并且数据是从文件读的。我没有相关的数据文件,所以在程序初始化的时候补充了几行代码,随机生成数据,所以绘图的效果与原帖不同(包括界面布局也存在一些差别)。
2、原帖的一个ArchieFormulas函数单独存成文件,感觉毫无必要,直接与主程序合并为一个。
3、不知道楼主用的是哪个MATLAB版本,为尽量保证兼容性,程序在比较老的版本6.5上做的,并且在最新2013a上测试没问题,估计中间的那些版本应该问题也不大。
4、原代码的部分内容与我传的fig文件不匹配,不能替换我的代码。
5、其实GUIDE生成的代码文件中有很多内容是可以精简的,不过对使用来说没什么影响,我精简了一个,但懒得再传了。
你如果看一下代码就明白了,这个程序画图的做法是,把y轴刻度设为下面的一组数
[3.16 4.47 7.07 10.00 14.14 15.81 18.25 22.36 25.81 31.62 33.33 35.35 37.79 40.82 44.72 50.00 57.73 70.71]
但在相应的刻度上实际显示
{'1000','500','200','100','50','40', '30','15','20','10','9','8','7','6','5','4','3','2'}
至于作者为什么这样设置,我没仔细研究,不过,由于是人为指定的,如果不是指数变化应该也不算奇怪。
2024-09-19 广告