特殊环境机器人卓越人才班。
课程设计报告(**)
题目:matlab编程设计。
专业班级: 电子1401、物联1402
姓名: 郭俊遥朱敏
时间:2015.02.27~2015.03.06
指导教师: 卜燕高军强
完成日期:2024年03月1日。
matlab编程设计任务书。
1.设计目的与要求。
通过matlab中的gui设计一个计算器:
(1)实时显示输入和计算输出;
(2)实现加、减、乘、除、整除、乘方、开方、正余弦的运算。
2.设计内容。
(1)布局gui,在界面上安装按钮与静态文本框;
(2)设计控件的属性,根据按钮的作用及视觉效果做一定修改;
(3)添加功能函数;
(4)运行所创建的图形用户界面程序。
3.编写设计报告。
写出设计的全过程,附上有关资料和图纸,有心得体会。
4.答辩。在规定时间内,完成叙述并回答问题。
目录。1引言1
2 总体设计方案2
2.1 设计思路2
2.2设计框图2
3按钮的功能函数分析3
3.1数字按键3
3.2运算符按键3
3.3按键3
3.4按键“clear4
3.5按键“close4
4总结与体会4
参考文献6附录17
附录212matlab应用——计算器。
摘要: 本设计利用matlab中的gui设计完成一个计算器。计算器可以实现下面功能:
能实时显示输入和计算输出;能够实现基本四则运算,乘方开方运算,三角函数运算,四舍五入运算,对数指数运算。
关键词: 四则运算,乘方开方运算,三角函数运算,四舍五入运算,对数指数运算。
1 引言。gui是matlab程序设计的包装外壳,能形象生动的把模拟、运算结果表现出来。gui是用来人机交流的界面,而用户界面是应用程序中很重要的一部分。
为了更好的掌握matlab编程,本组成员选定这个题目,来学习matlab的实际应用。
2 总体设计方案。
2.1 设计思路
命令guide可以运行matlab的界面设计工具。界面设置,操作简单,拖拖放放。存盘运行时,guide也可以自动创建fig文件和主函数。
最重要的是callback性质。用button来举例,callback就是按下按钮后,将会执行的功能。在guide中双击某个按钮,在弹出的属性设置窗口中就能找到callback项目。
可以使用guide自动创建的函数,也可自己写一个m文件或者函数文件,把名称添到callback即可。因为不是熟手,属性控制不熟练,反而效率低。所以,直接打开该gui的。
m文件,该文件中已经自动生成了许多**,找到callback函数,在这个函数名称下面直接写入程序段。
gui设计中,callback函数的参数传递设计很重要。除了必要的处理数据外。就是句柄的传递。
matlab对所有的图形和物件都设置了句柄,所有的图形和物件的属性都可以通过各自唯一的句柄来取得和设置。
2.2 设计流程图。
gui程序设计流程图如图1所示。
图1 gui程序设计流程图。
3 按钮的功能函数分析。
3.1 数字按键。
数字按键1的**如图2所示。
图2 数字按键1的**。
使用句柄 handles 指向对象 text1,并以字符串形式来存储数据文本框 text1 的内容。用get获取数据,用strcat连接字符串,再用set在 text1 中输出。
同理,分别在0~9 数字按键下编写此类程序。
3.2 运算符按键。
符号键“+”的**如图3所示。
图3 符号键“+”的**。
用strcat 连接字符串的作用在已输入的存储数据 textstring 后添加“+”进行运算。然后执行 set语句,在text1中输出。
符号键与‘+’的运算函数类似。
乘方运算”由“ ^功能实现。
开方运算”由“ sqrt”功能实现。
正弦运算”由“ sin ”功能实现。
正切运算”由“ tan ”功能实现。
四舍五入运算”由“ round ”功能实现。
自然指数运算”由“ exp ”功能实现。
自然对数运算”由“ log ”功能实现。
整除运算”由“ fix ”与“ /功能实现。
整除、开方、正余弦正切,四舍五入,自然指数,自然对数的运算,需搭配“(”与“)”按键的使用。
各按键的编程类似,均运用strcat函数连接字符串。
3.3按键“=”
按键“=”的**如图5所示。
图5按键“=”的**。
ans是matlab中一个暂时存放计算结果的容器。
eval函数可以将字符串转换为**执行,并产生返回值。set语句输出结果,使运算结果在text1中显示。
3.4 按键“clear”
按键“clear”的**如图6所示。
图6 按键“clear”的**。
把静态文本框的字符清空,返回一个空格 set('string','
3.5按键“off”
按键“close”的**如图7所示。
图7 按键“off”的**。
按键“退出”:关闭计算器 close(gcf);
3.6按键“back”
按键“back”的**如图8所示。
function pushbutton12_callback(hobject, eventdata, handles)
textstring=get('string');
w=length(textstring);
t=char(textstring) ;
textstring=t(1:w-1);
set('string',textstring);
图7 按键“back”的**。
4 总结与体会
接触matlab时间并不长,对matlab的印象仅仅在解决习题和绘制图形上。在理论方面,感觉到matlab的语法和c语言有许多相似之处,但更加简单,适合复杂的数**算,且易于绘制图形,编程也容易。
matlab是一个基于矩阵运算的软件,但是,在编程的时候,容易忽略这个问题。使用matlab时,受到c语言的影响,for循环(包括while循环)到处都是,没有发挥matlab所长,还浪费了时间。所以我们在初始化矩阵的时候就应该注意到这个问题,使用矩阵而不是循环来赋值,摆脱c编程的习惯,能不用的循环的尽量不用,掌握矢量化的精髓。
还有一点要多用help命令。命令窗口直接敲“help”,可以得到本地机器上matlab的基本的帮助信息。在命令窗口中输入helptoolboxname,可以得到工具箱有关的信息。
在gui编程的时候,有时候想改变某些object的属性,不记得这些object的属性不会设置,可以用get(handles)得到此对象的所有的属性及其当前值,用set(handles)得到对象所有可以设置的属性及其可能的取值找到我们需要的属性名字和可能的取值之后,用get(handles,‘propertyname’)取得此属性的值,用set(handles,‘propertyname’,values)设置此对象此属性的值。
matlab博大精深,熟悉和我们专业最相关的部分就可以了,而且经常上机实践是很必要的。学习matlab似乎和以前的编程能力没有太多的关系,也不用担心编程能力差,只要花费时间和精力,就一定能有所收获。
参考文献 1] 崔秋珍。基于matlab的高等数学实验系统设计与图形界面系统实现[d].西安建筑科技大学。2024年。
2] 钱思佑。图形用户界面测试中相关问题研究[d].中国科学技术大学。2024年。
3] 吴迪,刘军,徐朋,王蔚,李学慧。利用matlab的gui实现输入实验数据的检验与存取[a].第六届全国高等学校物理实验教学研讨会**集(上册)[c].2024年。
4] 鲁晓东。visual c++与matlab的界面混合编程[j].实验室研究与探索。2024年07期。
5] 陈效奕。《matlab程序设计》课程教学探索[j].黑龙江科技信息。2024年16期。
附录1 演示过程。
1】基本运算。
2】乘方开方运算。
3】三角函数运算。
4】四舍五入运算。
5】对数指数运算。
附录2 各按键的程序源**
function pushbutton1_callback(hobject, eventdata, handles)
textstring =get('string');
textstring =strcat(textstring,'1');
set('string',textstring)
function pushbutton2_callback(hobject, eventdata, handles)
textstring =get('string');
textstring =strcat(textstring,'2');
set('string',textstring)
function pushbutton3_callback(hobject, eventdata, handles)
MATLAB课程设计
1 求被控对象传递函数g s 的matlab描述。num 789 6312 11835 den 1 14 56 64 0 0 gs tf num,den transfer function 789 s 2 6312 s 11835 s 5 14 s 4 56 s 3 64 s 2 2 求被控对象脉冲...
MATLAB课程设计
课程设计。题目 matlab计算器。姓名 班级 学院 专业 完成时间。1总体设计。该计算器程序主要是matlab来制作,界面主要由四个静态文本框 21个运算按钮和两个动态文本框组成。实现的运算功能有四则运算 加 减 乘 除。而且添加了括号使人们使用时更加简单。这些计算功能主要调用了matlab的自定...
MATLAB课程设计
matlab课程设计。如图所示,为测量系统的示意图,它由两个能相互转动的连杆,角度编码器和滚轮等组成。o1为固定点,o2点为转动点,o3点为滚轮的中心,连杆的有效长度分别为l1和l2。任一位置时,连杆1相对于某基准位置的角度为 1,两连杆的相对角度为 2。其中对于 1,取垂直方向为基准线,在基准线左...