matlab是什么编程语言GUI问题

句柄是一个标识符,是拿来标识对象的,它就象我们的姓名一样。
它类似于一个指针,但指针的值是内存地址,而句柄是一个数。
这是操作系统里的一个概念,句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。

工作人员会在48小时内处理,处理结果请关注系统通知,感谢您对百度知道的支持。

  • 1.回答无意义,对问题无帮助,例如:盲目复制、过于简略、低质等;
  • 2.内容明显错误、内容真实性存疑、内容过时;
  • 3.内容违反知道协议,可能涉及答非所问、灌水、偏激、攻击性等;
  • 4.部分问题下提交的回答需要审核,审核通过前会暂时折叠。

前言:任何编程语言到了GUI这一块都逃不了要模仿做一个计算器来证明已经入门了。上个学期学java的时候GUI着实不好整,一个计算器硬是没整出来。这学期接触了matlab,虽然他号称是面向对象的编程语言,但还是跟java,python有很大区别,在我看来,他方法调用上其实又有些像C语言实现闭包的方式。而在对象的操作上又跟java等面向对象一致。

刚入门的matlab,发现这门语言(或者叫软件)其实很容易上手,java中很难实现的计算器在matlab这个“半可视化”的GUI编程中很快就实现了。

第一篇文章献给matla ,大牛不要嘲笑哦~

这就跟java很不一样了,java的一切空间都是需要自己创建的对象,而matlab提供一个类似画图界面的操作窗口可供用户可视化操作,当然他背后的.m文件也会自动相应地生成功能函数。

别吐槽。我知道巨丑....

计算式框和结果框都是静态文本,下面按钮使用pushbutton

当然,控件的样式操作也很方便,直接调出控件的属性查看器,直接修改样式属性。(有一种ppt的感觉有没有。。。)

相当于这个控件对象的一些属性可以在这个界面人工修改。例如string属性是控件静态显示文本,java里面需要调用setText(j)方法来设置。比较重要的是tag属性,相当于对象的名字,最开始都是系统自动起的名字。对象名当然很重要,不知道对象名怎么调用属性?怎么调用方法?

计算器啥功能?基本的运算,得出一个多项式结果后还能接着这个结果运算是吧?当然最开始还得实现出发button传值是不,我们一步一步来实现:

首先一个比较重要的功能就是,控件相应功能的函数位置,因为创建控件后,matlab会自动地在.m文件中写入对象的初始化函数、回调函数(相当于java中的事件监听函数)。

右键控件->查看回调->callback,然后matlab脚本编辑页面会自动跳转至相应的代码行,这个函数下的代码就是当你触发这个控件时所执行的代码。

首先要做的是将数字、运算符按钮上的值传到计算框内:

这个比较简单,就是set(对象名,属性名,属性值)   get(对象名,属性名)的使用,这两个函数在GUI编程中是最常用的。当然这个调用对象属性的风格颇像C语言...

前面所有的数字、运算符的传递到静态文本框内的都是string格式,那么怎么计算这个字符串格式的算术式从而显示结果到结果框中呢?

嗯,巧了,正在修的数据结构(使用C语言)告诉我,利用堆栈数据结构将字符串转化成后缀表达式,再出栈运算..... 

但是matlab作为一个重达几个G的软件不会连这个都要我们自己编算法吧?

好的,肯定不会 ,下面的eval函数就是这功能:

来,我们先看下目前的效果:

恩,并不知道怎么让文字垂直居中...

接下来解决的就是连续运算了,就是接着上步结果接着算。那么要干两件事:上步结果显示在输入框内、符号键第二次点击执行不同的代码。

比较难做到的就是第二点。比如我们第一次点击“+”时,是正常的运算。运算完结果后,第二次再点击+时应该接着上步运算,此时执行的代码就不一样了。

我解决的办法是设置全局变量,  每个运算符回调函数下设置 global i=0,执行完第一次之后把i置1;当然AE按钮执行后要重新置成0;

这样运算符的代码修改为这样:

这样就差不多了,然而有个bug,就是这样一来输入框就只能进行二项式的运算了,多项式如果第二次输入同一个运算符就gg了。这就需要再计算按钮上再设置计数器,然后在在运算按钮上加条件判断....

好吧,接下来的就不写了,因为GUI只要掌握图形界面背后代码是怎样实现的就ok了。

matlab比较好入门,然而精通他还是很难的。更要命的是数学要好呀,线性代数balabal.....

不太明白你要修改按钮的什么属性看如果只是按钮大小的话,直接鼠标拖动就行了。

在GUI编辑界面下,双击按钮,弹出按钮的属性对话框,就可以修改相应的属性。

按钮的背景图片:CData,这里需要先把你的图片导入workspace,然后在这里填写这个图片变量名。

我要回帖

更多关于 matlab是什么编程语言 的文章

 

随机推荐