第一次写博文,没有什么经验,专业知识掌握也较少,具体也不知道该怎么写出高大上的博文,就把我们最近在学的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的学习绝不是简简单单的两三节课能足够的,需要我们在平时慢慢积累.