MatLab基本知识学习 详细!

MatLab基本知识学习

概述:输出表示命令执行后的结果,不能简单的理解输出就是一定要输出一个数 ; 此文所有的输入代表在命令行窗口输入,输出表示在命令行窗口输出,或者在工作区显示相关的变量的名称以及值

1.who 命令

在命令窗口输入:‘who’
输出:当前所使用的所有的变量的名字

2.whos命令

在命令窗口输入:‘whos’
输出:变量的详细信息,有变量名,大小,属性等信息

3.clear 变量名

在命令窗口输入:clear x
输出:将工作区的变量的名字以及相关的值删除
输入:clear
输出:清除工作区的所有变量,clear后面不加参数

4.clc命令

在命令窗口输入:clc
输出:将命令行窗口的清空

5.clear命令

在命令窗口输入:clear
输出:将工作区的所有变量清除

6.help 命令(使用的很多)

在命令窗口输入:help xlabel
输出:打开函数xlabel函数的帮助文档

7.quit 或者 exit

在命令窗口输入:exit
输出:退出MatLab程序
在命令窗口输入:quit
输出:退出MatLab程序

8.pwd 命令

在命令窗口输入:pwd
输出:显示当前的程序运行的绝对路径

9.roots() 函数

用于解决方程中的问题:
示例:
在这里插入图片描述

10.inv()函数

概述:inv函数主要作用是求解矩阵的逆矩阵
在命令窗口输入:a = [1 2;3 4]; inv(a)
输出:在这里插入图片描述

11.plot()函数

简介:用来画图的命令,给他一个有关x的数组和一个有关y的数组plot(x,y),就可以画出相应的图像
示例:
x = [1 2 3 4]
y = [1 2 3 4]
plot(x,y)

12.数组的分类

一维数组:也叫做向量(行向量,列向量)
建立矩阵:a = [1 2; 3 4]
封号代表换下一行,相当于
a =
[ 1 2
3 4]

13. ':'的使用

简述:MatLab ':'代表索引,索引就是寻找的意思
示例1:
输入:c = 1 : 2 :10
输出:c = 1 3 5 7 9
含义:从1到10,每相隔两个数,记录下来,赋值给变量c

示例2:
输入:a = [ 1 2 3 4 5 6]
输入:a( : )
输出:1 2 3 4 5 6
含义:将变量a 中的所有值都找出来,显示在屏幕上。

14. linspace(x1,x2,n)

含义:生成 n 个从x1 到 x2 之间以(x2 - x1)/(n - 1)为间隔的数。
示例:linspace(1,2,5)
输出:生成 5 个数,每个数的间隔是(2 - 1)/(5 - 1)
输出:1 1.25 1.5 1.75 2

15.MatLab’;'的使用

1.用在矩阵内部,表示分割行
2.使用在MatLab的代码的后面,表示执行代码,但是不输出结果。

16.MatLab的索引与C++有点不一致,索引是从 1 开始的,需要注意一下。

17.zeros()函数

在命令窗口输入:a = zeros(2,2)
输出:生成两行两列的 0 矩阵。

18.end的使用

概述:end主要使用在数组的索引中,表示找到数组中的最后一个元素,在不同的语境下可能表示,最后一行,最后一列,最后一层。
示例1.:
输入:a = [ 1 2 3 4]
输入:a(end)
输出:4

示例2:
输入:a = [ 1 2;3 4]
输入:a(end,:)
输出:3 4
含义:输出最后一行的所有列

19.size()函数

示例1
输入:a = [ 1 2;3 4]
输入:size(a)
输出:2 2
含义:统计一下数组有几行几列,示例中有 2 行 2 列

20.sub2ind()函数

简介:双下标转换为单下标,本人的使用率很低,了解一下

21.MatLab有限列索引

示例1
输入:a = [1 2 3;4 5 6;7 8 9]
输入:a(4)
输出:2
含义:从从上到下,左到右,依次给矩阵中的元素排序,按照列优先的顺序进行

22.MatLab 不等于的表示

示例1
输入:a ~=b
含义:a不等于b
注意:’!='是C++语法,需要注意.

23.max()函数

示例1
输入:a = [1 2 3;4 5 6]
输出:4 5 6
含义:输出每一列的最大值,并不是矩阵的最大值,如果需要求的矩阵的最小值,需要使用max(max(a))

24.字符串

简介:MatLab使用 ’ ’ 两个单引号,来表示一个字符串

25.空数组

使用全下标,不能删除单个元素,但是使用单下标,正常运行
示例1:a(1,2) = []
程序会报错

示例2:a(1) = [] %运行结果可以删除a(1)元素

26.元胞数组

概述:一种特殊的数据类型,在数组中用于从存放不同类型的数据,每个单元相当于一个盒子,“盒子中存放各种类型不同的MatLab数据”

27.hold命令

概述:在一个函数中多次调用plot命令来画图,如果不加hold on ,那么图层就会被相互覆盖掉,需要注意;对应的hold off,结束hold on 命令,之后绘制的图形不保留以前的坐标格式,以及曲线。
示例1
hold on
plot();
plot();
plot();
hold off

28.MatLab注释

MatLab 使用 百分号 % 进行注释,和C++使用‘//’注释不同

29.格网分格线的绘制

示例1:
grid on
grid off

30.图像文件的读写与图像的显示

imread()指令

概述:读取图像文件(BMP GIF PNG JPEJ JPG)
示例:imread(‘123.jpg’)

imshow()指令

概述:显示图像
示例:imshow(‘123.jpg’)

imwrite()指令

概述:保存图像
示例:imwrite(lighter,‘123.jpg’)
说明:lighter,是自己处理过的一个图片的名称
第一个参数,要存放的图片的变量,第二个参数,自己给保存的图片的起的名字
区别:xlsread()函数 与 xlswrite()函数

rgb2gray()

概述:将彩色图像转换为灰度图像
示例:rgb2gray(‘123.jpg’)
说明:'123.jpg’这个文件需要在你的命令运行的路径下,否则MatLab,会报错找不到文件

31.continue break

概述:使用在循环当中,控制循环结束的语句
continue :退出本次循环
break:退出循环

32.特殊矩阵

1.zeros:产生全部为0的矩阵
2.ones:产生全1的矩阵
3.eye:产生单位矩阵
单位矩阵:对角线元素是1,其余元素都是0的矩阵
4.randn:产生均值为0,方差为1的标准正态分布随机矩阵
5.rand:产生(0,1)之间的均匀分布的伪随机数
6.diag:构造对角矩阵
示例:diag([ 1 2 3])

33. ( .*, ./ , / , ) 的用法

.* 和 ./ 表示矩阵的对应的元素相乘或者相除
/:右除。a/b表示矩阵a乘以矩阵b的逆。
\:左除。a\b表示矩阵a的逆乘以b。

34.find()函数的使用

概括:find函数可以找出数组中满足条件的数
示例:
输入:a = [1 2 3;4 5 6]
输入:a = [4 5 6;7 8 9]
输入:find(a < b)
输出:1 2 3 4 5 6
含义:
1.在MatLab调用find函数之前,首先对(a < b)进行判断,判断的逻辑是,对应元素相互比较,如果是真,返回 1 ,如果是假,返回 0.所以在(a < b)判断后,会输出一个逻辑数组[1 1 1 ;1 1 1 ]。a 中对应的元素都小于对应的 b 的元素。
2.MatLab调用find函数,并且以列向量的形式返回对应元素的下标。(也就是上一步的生成的逻辑数组中值为 1 的元素的下标)
注意:两个数组之间使用find 函数,返回的是下标,不是元素的值

35.MatLab取整函数:round(),fix(),floor()

以很多人喜欢的 5.56 为例 7.62 的例子也挺好~~
1.round()
简介:四舍五入取整
示例:
输入:round(5.56)
输出:6
输入:round(-5.56)
输出:-6

2.fix()
简介:向靠近零方向取整
示例:
输入:fix(5.56)
输出:5
输入:fix(-5.56)
输出:-5

3.floor()
简介:向负无穷方向取整
示例:
输入:floor(5.56)
输出:5
输入:floor(-5.56)
输出:-6

36.save()函数和load(函数)

简介:这两个函数save()是保存当前在工作区的所有的变量以及变量的值,执行后会在运行目录下生成文件名.mat, load() 函数是将以前使用save()函数存储的 .mat文件加载到工作区中
示例save:
输入:save(‘test’)
输出:在运行目录生成一个 test.mat 文件
注意:文件名 test ,必须在两个单引号内

示例load:
输入:load(‘test’)
输出:在MatLab的工作区将会显示加载进来的 test.mat文件 ,显示的是变量以及变量的值

37.MatLab中使用plot()画图时,线条或者符号的颜色属性的简写

y:黄色;k:黑色;w:白色;
b:蓝色;g:绿色;r:红色;
c:亮青色 cran;m:锰紫色 manganese-purple;
简单记忆:对应的颜色的英文字母的首字母的简写;
对于黑色:本人的理解是蓝色的 b 和 black冲突了,然后给黑色 用 k 来代替

38.数组之间的 &, ./ ,== 符号的辨析

示例1:
输入:A = [0 0 6;1 3 0]
输入:B = [1 4 12 ;1 3 0]
输入:A & B
输出:[0 0 1 ; 1 1 0]
含义:数组 A 与 B 进行逻辑 & 运算,运算的结果当然是一个逻辑矩阵,两个数组中的对应的元素进行逻辑 & 运算,可以理解为对应元素的乘法 ,结果不是 0 ,返回 1 ,结果是 0 ,返回0

示例2:
输入:A ./ B
输出:[0 0 0.5 ; 1 1 NaN]
含义:两个数组的元素对应相除,A 数组中的元素充当被除数 ,B 数组中的元素充当除数 ,所得到的商,如果非 0 ,返回 1 ;如果是 0 , 返回0;如果除数等于 0 ,大家都知道 0 是不可以当除数的,所以得到的数就是NaN

示例3:
输入:A == B
输出:[ 0 0 0 ;1 1 1]
含义:对两个数组进行逻辑运算,如果对应元素的值相等,返回 1 ,如果对应元素的值不相等,返回 0

39.一个 & 与两个 &&的区别

1.&
含义:假设有两个数组 A , B
(A & B) 表示先判断 A 的逻辑值 (简单理解:就是判断数组是不是空的),然后判断 B 的逻辑值,然后对 A B两个数组进行逻辑运算。对应位置的元素进行逻辑与(&)运算,结果非 0 ,返回 1 ;结果为 0 ,返回 0 ;

2.&&
含义:假设有两个数组 A , B
(A && B)表示先对 A 数组进行逻辑判断,如果 A 数组的逻辑为假,就不对 B 进行逻辑判断。说人话就是,就是先判断 A 数组中是否都是 0 元素, 0 代表假,在逻辑判断中,如果 A 中都是 0 的话,没必要对 B 进行逻辑判断,因为知道 0 矩阵与任何矩阵的与(&)运算一定是一个 0 矩阵,上面提到过,与运算可以简单理解成对应元素相乘。
同样,A B 也可能不是矩阵,是两种不同的条件的逻辑与(&)运算,理解是一样的。

举例:(老师来了收作业,我没写要被批评)在这个语境中,
有两个条件,1.老师来了 2. 收作业; 和一个结果:我没写要被批评
对于(&)当老师来了 和 收作业 两个都为真时,进行逻辑与运算,结果就是:(我没写要被批评)。
对于(&&)先判断第一个条件,老师来了没?如果没来,下面就不用判断了,结果为假那就是:(我没有受到老师的批评)

40.MatLab 的输入输出

1.输入:input()函数 C++的 cin
2.输出: fprintf() 函数 C++的cout

41.一道题目关于逻辑运算

在这里插入图片描述
解析:在图片中的题目计算过程如下:
1.进行(a > b)的逻辑运算,a数组中的对应元素,如果大于b数组中的对应元素,返回 1 ;否则返回 0 ;
2.a(a > b)相当于对数组a中的元素的索引,当然是对上一步的逻辑运算为 1 的元素的索引,看到了逻辑值为 1 的是:第二个元素 “3” 和第三个元素 “2”(MatLab按照列有优先顺序)
3.以列向量的形式返回结果。

42.subplot()函数

简介:subplot()函数的主要用途是在一个图窗中,可以画出几种不同的图。效果如下图:在这里插入图片描述
示例:subplot(m,n,num)
参数介绍
m,n:代表在这一个图窗中,画的图有几行几列,上图右两行两列的图,所以m,n代表的数字是2 ,2

num:表示图窗在这两行两列的小图中的位置,排序从左到右,从上到下,
左上的图是subplot(2,2,1)
右上的图是subplot(2,2,2)
左下的图是subplot(2,2,3)

43.MatLab的 NaN 和 Inf

简述:在使用除法的时候,我们都知道除数不能为 0 ,但是在数组中的计算中,难免会出现 0 元素当作除数。在MatLab中,是这样处理除数为 0 的情况的。

1.被除数和除数都是 0
示例:
输入: 0 / 0
输出:NaN
含义:Not a Number 的缩写,不是一个数

2.被除数不为 0 ,除数是 0
示例:
输入:12 / 0
输出:Inf
含义:infinite的缩写,无穷大的意思

44.MatLab中的单引号和双引号的使用

1.单引号
(1)在矩阵的转置会遇到,在矩阵名称后面加一个 ‘ 符号即可
(2)在某些特定的函数中会遇到,比如前面介绍的Imread(‘’)函数,在读取文件时,需要加上单引号
2.双引号
(1)在特定的函数中使用,比如想打印相关的汉字,显示在屏幕上,
fprintf(“Hello World!”)
fprintf(‘Hello World’)也是可以运行的
总结:在学习的时候记住相关的格式就行,不必深究,可以理解成约定俗成吧

45.简单总结一下find()函数,数组索引

1.find()函数

返回的是单下标,不是双下标,也不是元素的值,需要特别注意,并且返回的下标以列向量显示,不是行向量

2.数组索引

返回值以列向量的形式返回(显示在命令行窗口),并且列优先顺序,简单说就是优先显示第一列的数据,然后显示第二列的数据,以此类推

未完,待续…
觉得有用点个赞吧~

  • 61
    点赞
  • 371
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值