Matlab的基本语法和常用函数总结

Matlab基本语法

matlab工作界面基本介绍:

1.新建脚本:生成*.m文件,同时打开编辑器;
2.打开:打开文件夹中的m文件;
3.绘图窗口:利用你已有的数据可以进行绘图
(后期可能会更新具体操作,尽请期待…);
4.两个快捷键:Ctrl+N(新建脚本),Ctrl+S(保存文件)
5.查找和替换:对于代码中的变量进行查找和替换(实用功能)
6.文件夹路径:在命令行窗口上面那一行路径,
可以快速切换到你的个人.M文件的路径,方便打开**
这是matlab2019A版本的工作界面

matlab基本语法:

(如果自己真的希望学习matlab,那么这部分代码最好自己电脑尝试打出来,这样子才可以更好地学习。我这里这把代码语句附上来,实际操作就不做截图了。)
1.“;”的作用:每个语句加“;”执行后不显示结果,不加“;”执行后会在命令行窗口显示结果;
2.多行注释:注释对于代码的重要性我们就不做过多的解释了。不做注释的代码不是好代码。选中要注释的语句,按快捷键Ctrl+R,或者在命令行窗口上面的注释地方可以进行注释。当然也可以直接在语句前面+“%”就可以(注意:一定要用英文符号!);
3.取消注释:快捷键Ctrl+T;
4.clear:清除工作区所有变量,你在命令行定义变量时可以在工作区查看的,这个操作可以清楚工作区的变量;
5.clc:清楚命令行窗口所有文本,让屏幕变得干净(特别适合强迫症)。clear和clc经常搭配一起使用;
6.输入和输出函数:输出函数disp(), 输入函数input();
这里先说明matlab中如何表示字符串:‘字符串’
disp(‘待输出文本’)和C语言中printf(“hello world!”);类似。

>> a=input("请输入a的值:")
请输入a的值:100

a =

   100

>> disp(a);
   100

>> 

7.matlab中矩阵的表示方法:“行”中数据用空格或者逗号隔开,换行用“;”隔开,整体用“[ ]”括起来。

>> A=[1 2 3;4 5 6;7 8 9]

A =

     1     2     3
     4     5     6
     7     8     9

>> A=[1,2,3;
      4,5,6;
      7,8,9]

A =

     1     2     3
     4     5     6
     7     8     9

8.strcat()函数:粘贴字符串,可以把两个字符串粘贴在一起
strcat(‘str1’,‘str2’)

>> strcat('我是','小白')

ans =

    '我是小白'

[str1,str2,str3]或者[str1 str2 str3]也是可以粘贴合成的呢


>> ['wo' 'shi' 'xiao' 'bai']

ans =

    'woshixiaobai'

>> ['wo','shi','xiao','bai']

ans =

    'woshixiaobai'

8.sum()函数:这是加法函数,可以分别对矩阵进行加法计算的。
假设A是一个矩阵,对列求和:sum(A)或者sum(A,1);对行求和:sum(A,2)。这里的“1”和“2”是dim值,表示维度,1是对列,2是对行,通常1可以省略
整个矩阵求和:sum(A(: ))
下面的计算结果可以自己检验哦!

>> A=[1,2,3;4,5,6;7,8,9]

A =

     1     2     3
     4     5     6
     7     8     9

>> sum(A)

ans =

    12    15    18

>> sum(A,2)

ans =

     6
    15
    24

>> sum(A(:))

ans =

    45

10.matlab中如何提取矩阵中指定位置元素
1)指定行和列:A(m,n),提取第m行,第n列
2)某一行全部元素:A(m,:)
3)某一列全部元素:A(:,n)
4) 取出某些行:A([m,n],: )(第m行和第n行组成一个矩阵)
5)取出某行到某行:A(m:n,:), A(m:end,:)(end是倒数第一行)
6)跳跃式提取:A(m:k:n,:)第m行到第n行每隔取一次
7)得到全部元素:A(: )输出结果是一个列向量

>> A

A =

     1     2     3
     4     5     6
     7     8     9

>> A(1,1)

ans =

     1

>> A(1,:)

ans =

     1     2     3

>> A(:,1)

ans =

     1
     4
     7

>> A([1,2],:)

ans =

     1     2     3
     4     5     6

 
>> A(1:3,:)

ans =

     1     2     3
     4     5     6
     7     8     9

>> A(1:1:3,:)

ans =

     1     2     3
     4     5     6
     7     8     9

>> 

11.“上”“下”两个方向键可以查看历史命令,方便输入。
在这里插入图片描述
12.size()函数:size(A)函数用于求矩阵A的大小,返回一个行向量,其中第一个元素是矩阵列数,第二个元素是矩阵行数。[r,c]=size(A)
r=size(A,1)返回行数,c=size(A,2)返回列数,注意dim值,看看会不会和sum()中的dim值代表的行和列混乱了呢?

>> clear
>> A=[1 2;3 4;5 6]

A =

     1     2
     3     4
     5     6

>> r=size(A,1)

r =

     3

>> c=size(A,2)

c =

     2

>> size(A)

ans =

     3     2

13.repmat()函数:矩阵的复制,B=repmat(A,m,n)就是将A复制mxn块

>> A

A =

     1     2
     3     4
     5     6

>> repmat(A,3,3)

ans =

     1     2     1     2     1     2
     3     4     3     4     3     4
     5     6     5     6     5     6
     1     2     1     2     1     2
     3     4     3     4     3     4
     5     6     5     6     5     6
     1     2     1     2     1     2
     3     4     3     4     3     4
     5     6     5     6     5     6

>> 

14.矩阵中各种计算:
1)“*”和“/”代表矩阵之间的乘法和除法。学习过线性代数的同学对乘法应该很熟悉的。对于除法,必须熟悉一个叫逆阵的概念熟悉,求逆阵用inv()函数,A/B=A*inv(B),
B *inv(B)=单位矩阵。
2)两个相同维度的矩阵对应元素之间的乘除法使用点乘和“./”
3)矩阵每个元素和常数相乘可用点乘,可不用点乘
4)每个元素乘方只能用“.^”
5)加减法中要求两个矩阵大小完全相同

>> A=[1 2 3; 4 5 6;7 8 9]

A =

     1     2     3
     4     5     6
     7     8     9

>> A.^2

ans =

     1     4     9
    16    25    36
    49    64    81

>> 

15.matlab中求矩阵的特征值和特征向量
这部分可以看我上一篇博客:用matlab求得矩阵的最大特征值
16.find()函数的用法:find(A)中用来返回向量或者矩阵中不为0的元素的位置索引
ind=find(x) 返回不为0的值的元素的位置
ind=find(x,2)返回前两个不为0值得元素位置
如果X是一个矩阵,要用矩阵表示返回结果,不然返回就是一个列向量。

>> clear
>> A=[0 0 0;0 1 0;0 0 0]

A =

     0     0     0
     0     1     0
     0     0     0

>> find(A)

ans =

     5

>> 

16.matlab中矩阵和常数大小比较:
大于>,小于<,等于==,赋值=,返回值用0和1作为逻辑数比较

>> A

A =

     0     0     0
     0     1     0
     0     0     0

>> A>0

ans =

  3×3 logical 数组

   0   0   0
   0   1   0
   0   0   0

>> 

17.判断语句:if else elseif end ,注意if 那一行不加冒号,最后一定要用end结束在这里插入图片描述

clear;clc
A=input('数学期末成绩:');
    if A>85
        disp("非常优秀");
    elseif A>60
        disp("你及格了");
    else
        disp("你挂科了");
    end

写在最后:很开心第一篇博客有1000+阅读量,这给我得更新很大动力。目前我还在认真学习,写博客真的可以很好的检验我的学习情况以及可以更好的复习。预告下篇博客会是数学建模中的层次分析法,有兴趣的读者请耐心等待,谢谢大家捧场。

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页