了解点儿MATLAB,知道它非常有用,但一直不太会用,如何快速掌握并运用它呢?
本专栏力争用最简洁的语言和逻辑,让您在最短时间内,学到教材课程中罕见的MATLAB运用技法,从新手迈向成手。
人机交互
程序是要给人用的。首先编程者自己开发过程中用,然后测试者(有时也是编程者自己)测试使用,最后用户使用。
广义的人机交互是指程序有输出,或者操作者有输入,完成人与机器交流的过程。
狭义的人机交互,就是指“人机交互界面”或者“用户界面”(user interface, UI),更狭义就是“图形用户界面”(Graphical User Interface,GUI)。
酷炫的 UI 设计会让用户提升对软件功能的评价
MATLAB人机交互三种方法
MATLAB本身是拥有命令行窗口的,同时又包含图形用户界面的开发环境GUIDE,而从2016a版本开发,MATLAB引入全新的图形用户界面开发环境App Designer。所以MATLAB三种交互:
命令行窗口
GUIDE
App Designer
命令行窗口以开发者使用为主,而后两者都是图形界面,以测试者和用户使用为主。
命令行窗口
在命令行中(当然包括在程序中)可以使用一些输入输出函数,完成人机交互。
input 输入
prompt = "What is the original value? ";x = input(prompt)
这样,就把用户输入的值存入x中了。
keyboard 转向键盘指令
当程序中遇到keyboard时,程序会暂停,然后调用键盘命令开始执行,完成后,需要输入return,再回车,程序就继续运行。
这个指令是程序调试的神器。
与input不同,input只能赋予变量值,但keyboard可以输入任意多个指令。
pause 程序暂停
pause(5); % 程序暂停5秒
pause还有一个妙用,如果想要看到绘图的过程,灵活使用pause即可实现。
可爱的命令行是最早的人机交互界面
return 结束函数并返回
在函数中使用return,表示终结函数运行,并返回。
在函数遇到输入是空矩阵情况时,或者输入并不满足函数的要求时,必须使用return来处理。例:
function idx = findSqrRootIndex(target,arrayToSearch)idx = NaN;if target < 0 returnend
error 出错信息
程序中必须预留一些出错信息点,用来检查中间结果,在程序调试过程中,可以清晰知道哪里出现问题。
msg = "Error occurred.";error(msg)echo 指令显示
在执行指令时,使用echo可以使执行的指令全都在命令行窗口显示出来!
这对调试和演示都太有用了!
echo on; % 显示其后被执行的指令echo off;% 不显示其后被执行的指令
disp 输出显示
非常好用的命令行窗口输出函数:
disp(a); % 打印a变量disp("出错啦!") % 打印一句话
同样也是调试和输出神器。
GUIDE 与 App Designer 对比
上面讲的都是命令行窗口的输入输出,而MATLAB图形用户界面更为强大,有GUIDE和App Designer。
先上一个GUIDE的例子:
再来一个App Designer:
直观感觉一下,后者更好看一些有没有?
是的,App Designer 是出来代替GUIDE的新产品模块,它与GUIDE相比有几大优势: