Posted by baoduge on 2017年7月10日
如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用【Ctrl+c】来中断。MATLAB这时可能正疲于应付,响应会有些滞后。
figure
可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口。当有多个figure
窗口时,在命令窗口中执行如Plot
等命令将覆盖当前figure
窗口中的对象。所谓的当前figure
窗口,也就是最后一次查看的窗口(可以用命令gcf
得到)。
figure(N)
,将编号为N
的窗口置为当前figure
,出现在所有窗口的最前面,如果该窗口不存在,则新建一个编号为N
的空白figure
。
%{
、%}
。经典方法是用if 0
,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用%
和{
的组合。输入%{
后,后面的代码都会变绿,在注释结束的地方再加上%}
。
也可以选中要注释内容,在右键菜单中选择"Comment" ("Uncomment"去掉注释标记),或使用快捷键【Ctrl+R】。
将光标放在需要注释的行中,按【Ctrl+R】,将该行变为注释。取消注释也是一样的,快捷键为【Ctrl+T】。
doc
命令名,打开命令的帮助文档与help
命令不同,帮助文档MATLAB Help中对命令的描述更详细,往往还有一些例子,更便于理解。
clc
清屏清除命令窗口中的所有输入和输出信息,不影响命令的历史记录。
clear
和clear all
clear
+ 变量名:可以清除workspace中的无用的变量,尤其是一些特别大的矩阵,不用时及时清理,可以减少内存占用。
clear all
清除所有的变量,使workspace一无所有,当重新开始一次算法验证时,最好执行一次,让workspace中的变量一目了然。
close all
如果开了多个绘图窗口,用这个命令将它们一起关掉。
在命令窗口中,上下光标键可以将历史记录中的命令复制到输入位置,便于快速重新执行。如果输入命令的前几个字母如 【row, col】 =
,再使用光标键,则只会选择以这些字母开始的命令。
对名称记得不太清楚的命令,可以输入开头的几个字母,然后按【Tab】键,当只有一个以这些字母开头的命令时,将自动补全命令名,否则显示一个命令名列表,方便从中选择。当然,只在命令窗口中有效。
在一个长长的脚本m文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell模式就非常有用了。cell模式相当于将其中的代码拷贝到命令窗口中运行。两个%
后接一个空格(%%
)开始一个cell。将输入光标放到一个cell中时,背景将变为浅黄色,Ctrl+Enter
执行cell中的代码。
执行cell中代码时不需要保存m文件,该m文件可以不在路径列表中。
cell模式中,断点不起作用,当然,调用的子程序中的断点还是正常的。
MATLAB内置了一些文件操作命令,例如
cd
(切换工作目录)
dir
(显示目录内文件列表)
dir
命令可以返回目录中的文件和文件夹列表,存在一个结构体数组中。如果需要对一些数据文件进行批处理,而文件名又没有一定的规律,你可能需要借助于这个命令。
如果需要对输出图像进行标注、坐标、颜色、线条等修改,可以在输出图像界面上,点击"edit"下"current object properties",然后可以图像各属性进行修改。
在MATLAB的"Editor"中,将输入光标放到一个子程序名称中间,然后按【Ctrl+D】可以打开该子函数的m文件。当然这个子程序要在路径列表中(或在当前工作路径中)。实际上该快捷键对应右键菜单中"Open Selection"命令。
在Editor菜单中,选择"Tools->Show Dependency Report",可以列出当前m文件调用的子程序。如果需要将程序移动到别的电脑上,使用这个工具可以确保不会漏掉一些东西。这个工具也适用于文件夹。
调试程序过程中,程序运行到断点后,将鼠标移到一个变量名上,将会弹出一个方框,显示该变量的内容。不在调试状态下,怎么使用这个功能呢?在Home的Environment Section中打开设置选项(Preferences),选择"Editor/Debugger -> Display",在 "General Display Options"中选择 "Enable datatips in Edit Mode "。
清除cell中的元素
1 2 |
cellname(n1:n2) = 【】; |
合并如下的两个cell数组
1 2 3 4 |
a = {'str1', 'str2', 'str3'}; b = 【1:3】; • c = 【a(1:2), b, a(3)】; |
得到:
1 2 |
c = { 'str1' 'str2' 【1x3 double】 'str3'} |
而
1 2 |
c = {a(1:2), b, a(3)} |
则得到
1 2 |
c = {1x2 cell} 【1x3 double】 {1x1 cell} |
cell array本质上是数组,前一种操作方式与普通数组的操作方式相同,而后一种方式则是将逗号分隔的各个元素分别一个cell,整体作为一个cell数组。
a(1)
得到 {'str1'}
, 因为a是一个cell数组,所以其中的每一个元素都是一个cell,
而a{1}
得到 'str1'
。
打开"Home->Environment->Preferences",在Fonts中,选择底部的 "Using antialiasing to smooth desktop fonts" ,MATLAB 中默认字号比较小,可以调大一些(可以在下拉菜单中输入数字,更精细地控制文字大小)。有衬线字体打开反锯齿后可能会看起来"发虚"。
linkaxes
命令,可以将一个figure中的各个axes指定相同的坐标范围,实现各个绘图同步放大、缩小。在缩放一个绘图时,其它也会同步缩放。可以同时关联x、y轴,也可以只关联一个坐标轴。
MATLAB Help中的"Interactive Plotting"一文提供了一种在figure中用鼠标绘图的方法,主要使用ginput
函数。
callback
为GUI窗口右上角的关闭按钮添加回调函数:在GUIDE中打开GUI,在没有控件的地方单击,选中整个figure,右键菜单中选择"View Callbacks->CloseRequestFcn",m文件中将自动添加该回调函数,输入代码就可以了。
常用的快捷键(用【】表示)或命令:
初学者要把下面的基本使用规则,牢记于心
;
的作用:不显示运算结果,但对图形窗口不起作用。分号也用于区分行,,
的作用:函数参数分隔符,也用于区分行,显示运算结果,当然不加标点也显示运算结果:
多用于数组...
不能放在等号后面使用,不能放在变量名中间使用,起作用时默认显蓝色'string'
是字符串的标识符!
用于调用操作系统运算百分号%
是注释号,百分号后面直到行末的语句MATLAB跳过执行.另外还有一个块注释,即对多行一次注释,会使用到,格式为(注意%{
和%}
都要单独成行)
1 2 3 |
%{ %} |
*
总是不能省略的,除了表示复数,比如2+3i时可以省略/
或\
,它两个的关系是:a除以b表示为a/b
,或b\a
=
用于赋值==
表示数学意义上的等号如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
clc即clear command(清屏), clf即clear figure(清理图形窗口) clear 清理内存所有变量, clear+变量名 清理内存指定变量 edit+函数名 查看或编辑源文件 who 显示当前变量名列表 whos 显示变量详细列表 which+函数名 证实该函数是否在当前路径 what 列出当前路径的所有MATLAB文件 load 加载外部文件 save 保存文件到外部 20.MATLAB的帮助函数: help help+函数名或help+函数类名 精确查询 helpwin 打开帮助窗口 helpwin+函数名 精确查询 helpdesk 打开帮助窗口 doc 打开帮助窗口 doc+函数名 打开帮助窗口, 精确查询 lookfor+关键字 这个是MATLAB中的谷歌,模糊查询 |
函数式M文件的文件名,在MATLAB主窗口下不区分大小写
1 2 3 |
函数式M文件中,变量都是局部变量 脚本式M文件中,变量都是全局变量 |
在命令提示符后,可以用键盘上的上箭头和下箭头调用历史命令行
Esc 清楚当前输入行
Ctrl+左箭头,光标左移一个单词
Ctrl+右箭头,光标右移一个单词
Del 删除光标后一个字符
Alt+Backspace 恢复上次删除
24.编辑器(Editor)中的几个有用的快捷键:
Tab或Ctrl+】 增加缩进,对多行有效
Ctrl+【 减少缩进,对多行有效
Ctrl+I 自动缩进,对多行有效
Ctrl+R 注释,对多行有效
Ctrl+T 去掉注释,对多行有效
Ctrl+B 括号配对检测,未配对会有红色波浪线标出
F12 设置或取消断点
F5 运行程序
一 | 二 | 三 | 四 | 五 | 六 | 日 |
---|---|---|---|---|---|---|
« 12月 | ||||||
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Leave a Reply
You must be logged in to post a comment.