• 本站已迁至新址:https://www.91science.com
  • 包含大量新资源、新内容。
  • 22年以前的用户,可以用本站账号直接登录。
  • 新用户需重新注册登录,谢谢各位老师同学。
设为首页 |收藏本站
官方QQ群:
531617987
在线客服:
客服一
客服二
扫码关注公众号
官网地址: scidrawing.com
|切换到宽版
 找回密码

三角板论坛

2020你好呀~
2020你好呀~
查看: 6373|回复: 11
收起左侧

[技术交流] 最常用的10个Matlab快捷键,助你编程更高效

[复制链接]
  • TA的每日心情
    愤怒
    2020-1-7 00:01
  • 签到天数: 88 天

    连续签到: 1 天

    [LV.6]常住居民II

    142

    帖子

    1297

    学分

    23 小时

    在线时间

    实习版主

    Rank: 7Rank: 7Rank: 7

    积分
    1579
    注册时间
    2017-3-9
    最后登录
    2020-1-7
    发表于 2017-3-11 13:54:31 | 显示全部楼层 |阅读模式
    本帖最后由 小明同学 于 2017-3-11 14:05 编辑

                                                                                                    


    在使用Matlab进行编程时,有时可能需要不少时间。花时间的地方主要有两点:

    (1) 一方面在于调试算法的脑力劳动,比如检查算法是否解决了实际问题、程序是否优化等;

    (2) 另一方面则在于操作软件的体力劳动,比如检查语法错误、大段注释程序以进行测试等。

    如果对一些快捷键比较熟悉,那么能减少多余的操作步骤:争取把精力尽量集中在算法调试上,而不是软件操作本身,以提高效率。

    下面3M君将自己常用的一些快捷键列出来,供大家参考,遗漏的地方欢迎留言补上。


    1. 屏蔽大段程序:Ctrl+r
    调试程序时,经常需要屏蔽掉一整段程序,也就是将其标注释符%

    比如下面这段程序共有三段,需要完全屏蔽第二段:
    1. %清除所有变量
    2. clear
    3. clc

    4. % 建立图片存储文件夹
    5. % if exist('doggyphoto','dir')~= 7
    6. %    mkdir([cd,'/doggyphoto'])
    7. % end
    8. % directory=[cd,'/doggyphoto/'];

    9. %设置一个界面
    10. hf = figure('Units', 'Normalized', 'Menubar', 'None','NumberTitle', 'off', 'Name', '控制');
    11. ha = axes('Parent', hf, 'Units', 'Normalized', 'Position', [0.125 0.2 0.75 0.75]);
    12. axis off
    13. axis equal
    复制代码




    常用的方法有两种:
    (1) 第一种是用if 0的方法:
    在段首加 if 0,段尾加 end,这样中间都不会被执行,相当于注释掉了,比如在第二段进行如下操作:
    1. %清除所有变量
    2. clear
    3. clc

    4. % 建立图片存储文件夹
    5. % if exist('doggyphoto','dir')~= 7
    6. %    mkdir([cd,'/doggyphoto'])
    7. % end
    8. % directory=[cd,'/doggyphoto/'];

    9. %设置一个界面
    10. hf = figure('Units', 'Normalized', 'Menubar', 'None','NumberTitle', 'off', 'Name', '控制');
    11. ha = axes('Parent', hf, 'Units', 'Normalized', 'Position', [0.125 0.2 0.75 0.75]);
    12. axis off
    13. axis equal
    复制代码



    但缺点是不够直观,注释掉的内容仍然保持代码的颜色。

    (2) 第二种是用块注释符号%{%}的方法:
    输入%{后,后面的代码都会变成绿色,在注释结束的地方再加上 %} ,比如在第二段进行如下操作:
    1. if 0
    2. if exist('doggyphoto','dir')~= 7
    3.    mkdir([cd,'/doggyphoto'])
    4. end
    5. directory=[cd,'/doggyphoto/'];
    6. end
    复制代码



    但缺点是只有在高版本的Matlab里面才能用。

    最合适和最方便的方法还是用Ctrl+r快捷键的方法:



    用鼠标选中需要注释的行,按Ctrl+r,选中的第二段就变为注释了:
    1. % 建立图片存储文件夹
    2. % if exist('doggyphoto','dir')~= 7
    3. %    mkdir([cd,'/doggyphoto'])
    4. % end
    5. % directory=[cd,'/doggyphoto/'];
    复制代码

    取消注释也是类似的,用鼠标选中已经注释的行,按Ctrl+t,选中的这些行就被解除注释了
    1. %建立图片存储文件夹
    2. if exist('doggyphoto','dir')~= 7
    3.    mkdir([cd,'/doggyphoto'])
    4. end
    5. directory=[cd,'/doggyphoto/'];
    复制代码



      

    2. 自动对齐程序:Ctrl+i
    m文件时,可能有许多if……endfor……end语句。

    有时候缩进没有调好,程序不太好看,比如下面这个:
    1. %建立图片存储文件夹
    2. if 0
    3. if exist('doggyphoto','dir')~= 7
    4.    mkdir([cd,'/doggyphoto'])
    5. end
    6. directory=[cd,'/doggyphoto/'];
    7. end
    复制代码



    end很多的时候,很难看清楚end对应的是哪个命令。


    选中某段程序内容,按下Ctrl+i,可 matlab自动对齐程序:
    1. %建立图片存储文件夹
    2. if 0
    3.     if exist('doggyphoto','dir')~= 7
    4.        mkdir([cd,'/doggyphoto'])
    5.     end
    6.    directory=[cd,'/doggyphoto/'];
    7. end
    复制代码


    这样程序看起来很有层次,也更容易发现程序中的错误。


    3. 直接跳至某行:Ctrl+g
    当程序源代码很长时,可能有几百上千行。

    有时错误出现在很后面的地方,需要用鼠标中间的滚轮往下滚很久,才能滚到想要的那一行。


    这时,Ctrl+g,就会跳出一个对话框,输入想要去的那一行的行号,就可以直接跳过去了,如下:



    10473ff93b7297a19a93ea2b231ffc0e.jpg


    4. 设置标签:Ctrl+F2
    有时候发现程序某行有点问题,但不知道该怎么解决。

    然而也不能一直停在这个位置,需要往下继续写。

    等写完所有的程序,再回头来解决有问题的这一行。

    这样,就需要把这行先标注一下,以免待会回来时,已经忘记是那一行了。


    Ctrl+F2,可标注这一行,被标注的这一行行号后面有个蓝色的圆方框,比如:

    74e744aaa2b111b7d5f67ed67b1f5083.jpg



    再按一次Ctrl+F2,就可以解除已经标注的方框。



    另外,要寻找下一个被标注的位置时,不需要手动滚轮和目测寻找,只需要F2即可自动跳到下一个被标注的位置,按Shift+F2是自动跳到上一个被标注的位置。



    5. 设置断点:F12
    测试程序时,有时需要设置断点,程序会在断点处停止运行。设置断点的方法有两种:

    (1) 点击在要设置断点的行左侧的-

    (2) 可按F12设置断点。

    可以看到某行被设置为断点后,该行行号后面的-变成了圆圈:

    b827f312e0482b5ecba61c08b8f8d23b.jpg

    条件断点在debug菜单下的set/modify conditional breakpoint进行设置。


    如果需要解除断点,点击已设置断点处的语句,按F12可取消。



    6. 运行:F5

    F5可保存并直接运行程序。

    这样就不用在主窗口再重新敲一遍命令了。

    另外,设置断点后按F5运行程序,会在断点处停止运行,按F10可以单步运行调试。


    7. 自动补全命令:Tab

    当在命令窗口输入命令时,有时命令的名称可能记得不太清楚。

    这时,可以输入命令开头的几个字母,然后按Tab键。

    当只有一个以这些字母开头的命令时,将自动补全命令名。


    如果有多个以这些字母开头的命令时,将会显示一个命令名列表,方便从中选择,比如:

    994665f12466d0037a672aac6778b12e.jpg




    8. 再现历史命令:上下光标键↑↓

    在命令窗口中,上下光标键可以调用Matlab最近使用过的历史命令,便于快速重新执行。

    如果输入命令的前几个字母,再使用光标键,则只会选择以这些字母开始的命令。

    上下箭头寻找此前和此后输入的命令,每次一条。

    2dd6f399aefdca31c17401aa49261011.jpg



    9. 强制中断运行:Ctrl+c
    如果程序不小心进入了死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来强制中断。


    8179894bae1e81a82ade60defd38c266.jpg
    当然,有些时候Matlab可能响应很慢,这时候就只能用任务管理器结束掉它。


    10. 退出:Ctrl+q
    Ctrl+c只是强行退出运行的程序,并不是关掉Matlab

    如果要快速退出Matlab,则需要按Ctrl+q

    25cb9994a109f4ebdb68332abfcc9b99.jpg

    转载自:3M君
                        

    当他人从你分享的链接访问本页面时,每一个访问者的点击,你将获得[2学分]的奖励,一个IP计算一次.

    温馨提示:
    1、在论坛里发表的资源类教程及软件属于作者个人行为,如有侵权,请及时联系我们处理。
    2、转载本论坛的原创内容,请注明“转载自:三角板论坛科研论文作图网”
    3、论坛内的帖子内容,仅代表作者个人观点,如出现涉及敏感话题内容,我站愿积极配合删除帖子,并对作者进行法律追究。
    4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
    5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。

    该用户从未签到

    23

    帖子

    1

    学分

    5 小时

    在线时间

    贪玩小学生

    Rank: 1

    积分
    24
    注册时间
    2017-3-16
    最后登录
    2017-4-18
    发表于 2017-3-16 06:13:57 | 显示全部楼层
    沙发!沙发!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    帖子

    0

    学分

    7 小时

    在线时间

    贪玩小学生

    Rank: 1

    积分
    13
    注册时间
    2017-3-16
    最后登录
    2017-4-9
    发表于 2017-3-16 10:43:20 | 显示全部楼层
    有道理。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14

    帖子

    1

    学分

    9 小时

    在线时间

    贪玩小学生

    Rank: 1

    积分
    15
    注册时间
    2017-3-17
    最后登录
    2017-4-18
    发表于 2017-3-18 12:48:15 | 显示全部楼层
    我抢、我抢、我抢沙发~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    帖子

    0

    学分

    8 小时

    在线时间

    贪玩小学生

    Rank: 1

    积分
    12
    注册时间
    2017-3-17
    最后登录
    2017-4-20
    发表于 2017-3-18 19:30:35 | 显示全部楼层
    小手一抖,钱钱到手!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    帖子

    -1

    学分

    8 小时

    在线时间

    贪玩小学生

    Rank: 1

    积分
    11
    注册时间
    2017-3-16
    最后登录
    2017-4-10
    发表于 2017-3-20 17:53:35 | 显示全部楼层
    这个是好东东啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19

    帖子

    1

    学分

    1 小时

    在线时间

    贪玩小学生

    Rank: 1

    积分
    20
    注册时间
    2017-3-15
    最后登录
    2017-4-18
    发表于 2017-3-21 01:22:37 | 显示全部楼层
    小手一抖,钱钱到手!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20

    帖子

    1

    学分

    3 小时

    在线时间

    贪玩小学生

    Rank: 1

    积分
    21
    注册时间
    2017-3-17
    最后登录
    2017-4-2
    发表于 2017-3-21 09:47:27 | 显示全部楼层
    没看完~~~~~~ 先顶,好同志
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16

    帖子

    1

    学分

    7 小时

    在线时间

    贪玩小学生

    Rank: 1

    积分
    17
    注册时间
    2017-3-16
    最后登录
    2017-4-23
    发表于 2017-3-22 12:09:18 | 显示全部楼层
    越来越想学论文作图了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    帖子

    0

    学分

    6 小时

    在线时间

    贪玩小学生

    Rank: 1

    积分
    8
    注册时间
    2017-3-21
    最后登录
    2017-4-25
    发表于 2017-3-22 12:51:18 | 显示全部楼层
    这个是好东东啊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    点我微信扫码秒登录↓↓

    QQ| Archiver|手机版|小黑屋| 三角板论坛 |网站地图

    Copyright © 2001-2013 Adminbuy.Cn.   All Rights Reserved.

    ( 京ICP备14051802号-2 )

    快速回复 返回顶部 返回列表