独创Matlab教程连载——第一讲、Matlab入门须知

matlab教程 专栏收录该内容
3 篇文章 0 订阅

第一讲、Matlab入门须知


  • 本节课是Matlab入门知识,这可能是你学习matlab的基础
  • 这节课的目标是了解一些帮助你方便操作和自学的东西

一、Matlab的帮助文档详解

  • 宏观帮助文档: matlab文档的基本结构

  • 微观帮助文档:help,doc,edit(以mean,plot函数为例进行讲解)

    • 微观帮助文档的使用方法是:

      doc function:会调出该函数在帮助文档的那一页

      help function:提供某一function的功能,调用格式,输入输出参数的意义.顺便一提,他输出的恰恰是函数前面的注释部分,当然,也是script的前面的注释部分。

      edit function:提供某一function的源码

      • 微观帮助文档的阅读方法是:

      一般,帮助文档大抵都有一下几个部分组成
      syntax|description|examples|input arguments|output arguments|more about|see also
      syntax:语法,不过多描述
      description:是语法内部参数的描述,当你点击描述里面的参数,即可跳到input&output arguments
      examples: 例子
      arguments:来进行更详细的了解输入参数的数据类型以及可选参数
      more about:关于一些特殊用法的讲解
      see also:会给你与你搜索函数相近的一些函数,有时候也能给你启迪。

    • 有不会的东西可以先百度翻译他的英文,然后搜索,搜索的方法是doc 你要搜索的东西。

    • 有时候存在帮助文档太繁杂的情况,不能很好的找到解决方案,可以求助matlab中文论坛,一般问题都会得到很好的解决。


二、快捷键和基本命令

  • 快捷键

谢中华

  • 选中多行 command window 的代码:在command history 按住shift键,选择开头行和结尾行

  • 选中指定行 command window 的代码:在command history 按住command键,选择相应的行右击选择相应操作

  • command+0:跳至command window

  • command+2:跳至current folder

  • command+3:跳至work space

  • command+向上箭头: 跳到上一节

  • command+N: 新建脚本文件

  • command+f :寻找当前文件中的某个字母或变量

  • ctrl+c 停止运行

  • command+/: 注释

  • command+T: 取消注释

  • tab:自动补全 缩进

  • 学会使用smart indent(command + I)这个在一定程度上可以帮助你智能缩进命令行

  • Command Window的基本命令

    在这里插入图片描述

    • 有时候,我们为了避免变量之间相互打扰,我们常用下列组合键

    clc:清楚command window

    clear variable: 清除某一变量

    close all:关闭所有的图形文件

    • 查询命令

    cd:在command window输入,可显示当前的文件夹

    cd folder:设置folder为当前文件夹

    who: 展示你都有哪些变量,这个不能加括号

    whos variable:展示你这一变量的属性,这两个不能加括号

    class(variable):显示变量的类型,注意,这一个特别有趣,你不能不加括号,比如说,如果是 class a的话,它显示的类型是char,是a的类型,而不是变量a的类型

    iskeyword:显示出matlab的关键字有哪些

  • matlab的command window数字的显示精度也是可以调整的 format style

    short:3.1416

    long:3.141592653589793

    shortE:3.1416e+00

    longE:3.141592653589793 e+00

    bank:3.14: Currency format with 2 digits after the decimal point.

    hex:400921fb54442d18

    rat:355/113

    在这里插入图片描述

    • 我们有些特殊的变量和符号
      typora-user-images
% 我们有些特殊的变量和符号
disp(1/0)
disp(log(0))
disp(inf/inf)
   Inf

  -Inf

   NaN
  • 计算运行所需时间
% 计算程序运行所需时间
% 方法一 tic-toc
tic;
pause(1);
t=toc

% 方法二 clock-etime
t1=clock;
pause(0.5);
t2=clock;
t3=etime(t2,t1)
t =

    1.0044

t3 =

    0.5055
  • 常用函数

在这里插入图片描述

  • 发送邮件
% mailme('this is a test mail','this is a test mail')

% 其中mailme的函数如下
function mailme(mailtitle,mailcontent)
% 账号设置
mail = 'woshigoudan0913@163.com';  % ①邮箱地址
password = 'AEDCPRT'; % ②密码

% 服务器设置
setpref('Internet','E_mail',mail);
setpref('Internet','SMTP_Server','smtp.163.com'); % ③SMTP服务器
setpref('Internet','SMTP_Username',mail);
setpref('Internet','SMTP_Password',password);
props = java.lang.System.getProperties;
props.setProperty('mail.smtp.auth','true');
props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl.SSLSocketFactory');
props.setProperty('mail.smtp.socketFactory.port','465');
% 发送邮件
receiver='woshigoudan0913@163.com'; % ④我的收件邮箱
sendmail(receiver,mailtitle,mailcontent);
end

二、布局

选择合适自己的布局,方便写代码和调试代码

  • 调试布局:debug
  • 写程序时的布局:code

四、变量调用优先级

  • 变量调用的时候会出现一定的优先级,matlab里的优先级如下:

Variable

built-in function

Subfunction

Private function:

MEX-file

P-file

M-file

% 优先级例子
cos='this is a string';
cos(9)
clear cos
cos(9)
ans =

    'a'

ans =

   -0.9111

五、如何打印

  • 不加分号

  • disp

A=rand(2,3);
disp('这样就可以disp打印了')
disp(A)
X = '<a href = "https://www.baidu.com">baidu</a>';
disp(X)
这样就可以disp打印了
    0.8147    0.1270    0.6324
    0.9058    0.9134    0.0975

<a href = "https://www.baidu.com">baidu</a>
  • sprintf

    • 形式设置

    先对formatspec进行讲解:%3$0-12.5f

    %f是浮点数数据类型;常用的还有%d是整数类型;%e是科学记数法类型;%g有效数字可以用这个
    n$是identifier,也就是位置的标识,选择后面的第n个数据;
    0是flag标志变量:0是在前面补0;-是左对齐;+是始终显示±号。
    12是你选定的字符串最小的打印长度;
    .5是你选择的精度

    • 读取顺序

    依据数值索引,依次循环读取。

    • fprintf

    同sprintf,只是fprintf可以输出在窗口上,不管有没有分号。

% 形式设置
sprintf('%07.3f',pi)
sprintf('%09.3f',pi)
sprintf('%0+9.3f',pi)
sprintf('%07.3g',pi)

ans =

    '003.142'

ans =

    '00003.142'

ans =

    '+0003.142'

ans =

    '0003.14'
% 读取顺序

% 类型相同,数据很多
C = { 1,   2,   3 ;
     'AA','BB','CC'};
str1 = sprintf(' %d %s',C{:})

% 如果我都是%f 但是精确位数不一样,怎么办?
str2=sprintf('%*.*f',6,4,pi,9,6,exp(1)) 

% fprintf
A1 = [9.9, 9900];
A2 = [8.8,  7.7 ; ...
      8800, 7700];
formatSpec = 'X is %4.2f meters or %8.3f mm\n';
fprintf(formatSpec,A1,A2);
str1 =

    ' 1 AA 2 BB 3 CC' 

str2 =

    '3.1416 2.718282'

X is 9.90 meters or 9900.000 mm
X is 8.80 meters or 8800.000 mm
X is 7.70 meters or 7700.000 mm

六、匿名函数

  • 函数类型查看
handle=@(x)2*x+1;
info=functions(handle)
info = 

  包含以下字段的 struct:

            function: '@(x)2*x+1'
                type: 'anonymous'
                file: ''
           workspace: {[1x1 struct]}
    within_file_path: '__base_function'
    
  • 单重匿名函数

单变量匿名函数

多变量匿名函数

% 单变量匿名函数
f=@(x)x.^2;
f(10)

% 多变量匿名函数
f=@(x,y)x.^2+y.^2;
f(5,5)
ans =

   100

ans =

    50
  • 多重匿名函数
f=@(a,b)@(x)a*x+b;
f1=f(1,2)
f1(4)
f1 =

  包含以下值的 function_handle:

    @(x)a*x+b

ans =

     6

七、如何忽略某个函数输出

[~,~,the out put you want] = function(input1,input2,input3);

八、写作过程中语法错误的寻找技巧

  • 高亮和符号匹配

    • MATLAB对关键词、字符串、注释等内容高亮显示,对各种括号以及配对使用的关键词进行匹配,这两种功能使用户在编辑代码过程中就可以初步确定是否有语法错误。
    • 注释内容默认为绿色,可用于分辨程序和注释本文。
    • MATLAB中关键词默认使用蓝色显示。因此对于用户已知的关键词,如果实际没有高亮显示,那么这里存在用词错误。
    • 完整的字符串, MATLAB使用紫色显示。如果出现棕红色显示的字符串,表明出现字符串文法错误。
    • 编辑过程中,如果出现不匹配的括号, MATLAB给出蜂鸣声予以警示;如遇括号等较多时,可单击每一个右括号寻找与其匹配的左括号,从而一更正未匹配的符号
  • Code Analyzer

    • code analyzer:右边的色条,橙色是警告,红色是错误
    • debug断点测试,这时当鼠标放在变量上时,可以显示现在矩阵的
    • assert:可以用来在关键点进行断言,是检验程序到assert为止是否正确的一个手段,用法是assert(condition,message)

九、如何调试

  • 设置断点

    选取你想设置断点或者发生错误的地方,在数字后面的-上点一下,变成红色圆点就代表这一行进入到了调试状态。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uJHOqvIz-1593937347291)(/Users/goudan0913/Desktop/写作/matlab_lecture/图片/lecture1/debug1.png)]

  • 常用按钮

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0vtZI9Jj-1593937347292)(/Users/goudan0913/Desktop/写作/matlab_lecture/图片/lecture1/debug.png)]

  • 演示代码

    data=1:60000;
    N = length(data);
    T = data(1:1000);
    for k    = 1:1000:N
        temp = data(k:k + 1000);
        re   = T + temp;
    end
    

十、如何提高Matlab水平

1、多用help

2、多搜索: google+english stackflow matlab中文论坛csdn

3、多读高手程序: matlab中文论坛有等级标志,寻找高水平作者,多看看高手的程序。

4、多动手写:学习任何语言的必经之路。

  • 0
    点赞
  • 0
    评论
  • 6
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

狗蛋同学

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值