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


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空