初次接触Matlab的笔记及感受

第一次写博文,没有什么经验,专业知识掌握也较少,具体也不知道该怎么写出高大上的博文,就把我们最近在学的matlab的相关笔记和个人感受写下来吧,或许这样可以加深自己的印象,理解更透彻。

在“线性代数”书面课程结束后,老师通过网课的形式教我们如何使用Matlab,继续拓展我们的“线代”世界观。第一次看老师在电脑上使用matlab,给我的感觉没有那么陌生,就我个人而言有点像我们学过的C语言以及后续的C++。因为学过C++和线性代数,所以对于Matlab的知识点的理解不算特别费劲。以下是我的一些个人笔记和想法。

一:

1.在matlab中访问一个元素时,x(i)表示访问数组x的第i个元素;

2.访问一块元素时,用x(a:b:c)来表示从访问数组x的第a个元素开始,以步长b到数组x中的第c个元素(但不超过c),同时b可以为负数,当b缺省时b为1.

3.直接使用元素编址序号,如x(【a b c d】)表示提取数组x的第a、b、c、d个元素来构成一个新的数组,【x(a)x(b)x(c)x(d)】

二:

对于数组,可以是行向量也可以是列向量。

其中,产生列向量的有两种方法,分别是

1.直接产生 eg. c=[1;2;3;4]

2.转置产生 eg.b=[1 2 3 4];c=b\'

以空格或逗号分隔的元素指定的是不同列元素,

而以分号分隔的元素指定了不同行的元素。三:matlab中的数组运算我个人觉得还比较简单易懂。

(1)数组与标量的运算

a+c=[a1+c,a2+c,...an+c]

a.*c=[a1*c,a2*c,...,an*c]

a./c=[a1/c,a2/c,...,an/c](右除)

a.\c=[c\a1,c\a2,...,c\an]

a.^c=[a1^c,a2^c,...,an^c]

(2)数组与数组之间的运算

a+b=[a1+b1,a2+b2,...,an+bn]

a.*b=[a1*b1,a2*b2,...,an*bn]

a./b=[a1/b1,a2/b2,...,an/bn]

a.\b=[a1\b1,a2\b2,...,an\bn]

a.^b=[a1^b1,a2^b2,...,an^bn]

题外话,之前在学习线性代数的时候接触到了矩阵,因为从前看过《黑客帝国》三部曲,所以对“矩阵”的印象很深,在电影中矩阵就好像是造物主一样,可以创造出一个与真实世界几乎无误的虚拟世界。

后来学习matlab时了解到,matlab的意思就是矩阵实验室或矩阵工厂,所以我想这个软件一定是一个相当了得的软件,非常期待日后更深入的学习。

四:矩阵

(1)矩阵的建立

逗号或空格用于分隔某一行的元素,分号用区分不同的行,除了分号,在输入矩阵的时候按enter键也表示开始新的一行。

eg.

m=[1234,5678,9101112]

p=[1 1 1 1

2 2 2 2

3 3 3 3]

(2) 特殊矩阵的建立

c=ones(m,n) 产生一个m行n列的元素全为1的矩阵

b=zeros(m,n)产生一个m行n列的0矩阵

a=[ ] 表示产生一个空矩阵,当对一项操作无结果时,返回空矩阵

eye(m,n) 表示产生一个m行n列的单位矩阵

(3) 矩阵中元素的操作

1.矩阵中A的第r行: A(r, ;)

2.矩阵中的第r列:A(: , r)

3.依次提取矩阵A的每一列,将A拉伸为一个列向量:A

4.取矩阵A的第i1~i2行,第j1~j2列构成新矩阵:A(i1:i2,j1:j2)

5.以逆序提取矩阵A的第i1~i2行,构成新矩阵:A(i2:-1:i1,:)

自己的一点感想:

我感觉matlab在学过c++和线性代数之后入手,还是比较容易的,但是它毕竟也是一门机器语言,部分知识点理解起来还是略有饶人,感觉要记忆的东西也是挺多的.为了理解的更透彻,我们要时不时的拿笔记出来看看,除此之外我们还得经常在matlab上练习.我之前就在看笔记的时候有个地方产生了疑点,怎么想都想不明白,然后我跑去问老师,老师在对我解释后让我去matlab上动手写写就懂了.事实果真如此,所以说实践是检验真理的唯一标准,尤其对我们这些工科学生.

我这次随笔写的只是对matlab刚入门时的一些理解和内容,在最近的一次课上,明显感觉到matlab还是挺难的,加上本周课就都结束了,对matlab的学习绝不是简简单单的两三节课能足够的,需要我们在平时慢慢积累.