MATLAB GUI callback中文字过段时间都没了

xlabel('发动机转速n(r/min)');ylabel('发动机转矩Ttq(N*m)');title('发动机转矩曲线');legend('测试曲线','拟合曲线'... xlabel('发动机转速n(r/min)');
ylabel('发动机转矩Ttq(N*m)');
title('发动机转矩曲线');
legend('测试曲线','拟合曲线');
axis([1000 5000 100 300]);

这是我的部分代码,但过几天就变成了下面这个样子

xlabel('·ú×n(r/min)');
ylabel('·ú×Ttq(N*m)');
title('·ú×ú');
legend('ú','ú');
axis([1000 5000 100 300]);

这是怎么回事
展开
 我来答
匿名用户
2015-05-03
展开全部
Callback function就是回调函数。
使用uicontrol创建pushbutton并指定其“Callback”属性后,就告诉了MATLAB当我们按下该按钮时就调用这个函数(即,程序编写者告诉MATLAB按下按钮时需要调用的函数,然后当我们按下按钮时MATLAB帮助我们调用这个函数——而不需要我们自己在代码中显式调用这个函数)。
MATLAB帮助文档中提到,uicontrol的“Callback”要么指定的是一个字符串——表示一条或多条合法的MATLAB表达式,要么是一个函数的句柄(或者说函数地址,总之一个函数句柄就表示一个函数),要么是一个cellarray,其中包含了函数名/函数句柄外加你想要传递给该函数的参数。
使用代码(也可以使用GUIDE定义回调函数)指定Callback function的方法具体参考:
(在MATLAB命令窗口中输入doc命令,打开文档窗口,在左侧Contents中选择以下项)
MATLAB/User's Guide/Creating Graphical User Interface/Create GUIs Programmatically/Write Code for Callbacks/Specify Callbacks in Function Calls
在你的代码中,dd1是一个自定义函数,所以你应该这样定义:
定义一个函数文件dd1.m,例如:
function dd1
msgbox('MATLAB calls dd1.');
end
放置到MATLAB的当前目录下。例如,如果你的GUI代码放在D:\MyWorks\MATLAB\GUI里,那么就把dd1也放在该目录下。如果你的代码是直接在命令行中敲的,你可以执行以下cd命令看一下MATLAB的当前目录,然后把dd1.m放到该目录下即可。
如果dd1包含参数,你可以这样定义:
function dd1(say_what)
msgbox(say_what);
end
你的代码:
pbstart = uicontrol(gcf, 'style', 'pushbutton', 'position', [50 160 100 50],'string','1','callback','dd1 ''Hello, world!''; dd1 Greate!');
如果你想把UI代码和dd1的定义放在同一个文件中:
function main
pbstart = uicontrol(gcf, 'style', 'pushbutton', 'position', [50 160 100 50],'string','1','callback','dd1 ''Hello, world!''; dd1 Greate!');

function dd1(say_what)
msgbox(say_what);
end
end
至于传递函数句柄或者传递一个包含函数句柄和函数参数的元组,这两种方法就不多说了。毕竟MATLAB帮助文档中讲的要比我讲的详细的多,也专业的多(而且,我还很可能出错,如果这样的话,请以MATLAB offcial manual为准)。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式