Matlab/Octave 练习一:基础矩阵操作

前言

在Matlab\Octave中,矩阵计算是常见形式,矩阵也是数据集导入储存的常见形式,而且在Matlab\Octave中也对矩阵运算进行了特别优化,比如在处理大数据集时,向量化能有效优化运算时间,但这章只涉及一些基础常见的运算操作。

练习是学习语言的最好途径

打开命令行窗口,尝试以下语句,试试他们的作用,观察他们的输出。

A = [1, 2 ,3; 4, 5, 6; 7, 8, 9]
A + 1
A - 1
A * 2
A / 2
A^2
A'
M = magic(5)
N = magic(5)
M * N
M .* N
M ./ N
A(:, 2 )
M(:, 2 : 5 )
M(1, 2 : 5 )

你应该看到的

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

     1     2     3
     4     5     6
     7     8     9
>>A + 1
ans =

     2     3     4
     5     6     7
     8     9    10
>>A - 1 
ans =

     0     1     2
     3     4     5
     6     7     8
>>A * 2
ans =

     2     4     6
     8    10    12
    14    16    18
>>A / 2
ans =

    0.5000    1.0000    1.5000
    2.0000    2.5000    3.0000
    3.5000    4.0000    4.5000
>>A^2
ans =

    30    36    42
    66    81    96
   102   126   150
>>A'
ans =

     1     4     7
     2     5     8
     3     6     9
>>M = magic(5)

M =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9
>>N = magic(5)

N =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9
>>M * N

ans =

        1090         900         725         690         820
         850        1075         815         720         765
         700         840        1145         840         700
         765         720         815        1075         850
         820         690         725         900        1090
>>M .*N

ans =

   289   576     1    64   225
   529    25    49   196   256
    16    36   169   400   484
   100   144   361   441     9
   121   324   625     4    81
>>M ./ N
M ./ N

ans =

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

ans =

     2
     5
     8
>>M(:, 2 : 5 )

ans =

    24     1     8    15
     5     7    14    16
     6    13    20    22
    12    19    21     3
    18    25     2     9
>>M(1, 2 : 5 )

ans =

    24     1     8    15

观察

了解以上每个命令的运行
新建一个ex1.m文件,记录上面的命令,并使用%在每一行的代码前一行进行记录,说明一下该行的情况。如下:

%这是注释

如果实在猜不出来,就试图查找相关文档吧,没有人能够一下子完全理解他人的程序,资料文档是程序员之间最常见的交流。

加分习题

1.自己找个想要计算的东西,写一个 .m 文件把它计算出来,并输出。 输出函数如下:

fprintf('%f' ,[1,2,3])

2.尝试一下如magic()一样生成矩阵的方法,
如zeros()、ones()、rand()...还有更多类似方法,尝试搜索还有哪些。
3.自行查找一些针对矩阵进行计算的函数,如求求行列式det()。

常见解答

为什么输入时显示错误?

注意你的符号,缩进,是否跟上文给出的代码一致,在初学时有各种各样的情况,需要细心,你也可以把每次犯错的东西记录起来以便在相同的情况时引起你的注意,当你习惯了这,一切都会变得自然起来。

为什么magic()出来的东西不太一样?

因为实际上这是个随机生成矩阵的函数,这类函数还有很多,可以尝试去查阅文档了解他们的背后逻辑。

查阅文档无从下手?

[MathWork官方文档]https://ww2.mathworks.cn/help/matlab/
只有一部分是中文的,但是在程序的世界里面,英语是拥有最多资料的,不会英文的话就只能当’二等公民‘,而且对于想深究的人来说,一手资料永远是最好的。尝试跳出舒适区,都2019年了,至少也要尝试使用各类翻译插件对照着看

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容