久闻Matlab的大名,可惜一直没有好好学学。现在正好装了个最新的版本,就来学习一下Matlab,了解一下它的强大的功能。
程序界面
打开Matlab会看到类似的程序界面,上边是菜单栏,包含了各种工具。左边是文件视图,列出了项目中的所有文件。中间是代码和命令行窗口。右边则是工作区窗口,每次在代码中输入的变量都会作为工作区变量保存在工作区中。
数据类型
Matlab中其实所有变量都是矩阵,不过如果你只指定了一个值的话,那么它其实就是一个1X1的矩阵。
矩阵和数组
数组使用方括号声明,数组元素使用空格或者逗号分隔开。这样的数组又叫做行矢量。
% 数组
array1 = [1,2,3,4,5]
array2 = [1 3 5 9 7]
要创建矩阵,使用分号分隔的多行数据。
m = [1,2,3; 4,5,6; 7,8,9]
另外还有几个方法用于创建初始值为0、1、均匀随机、正态分布随机的矩阵,它们的参数分别是行和列的个数。
% 创建矩阵
m0 = zeros(3,3)
m1 = ones(3,3)
m2 = rand(3,3)
m3 = randn(3,3)
如果要转置矩阵,使用单引号。
% 转置矩阵
m = m'
两个某一维度相同的矩阵可以串联,逗号分隔为水平串联,分号分隔为垂直串联。下面[m,n]结果是3X6的矩阵,而[m;n]是6X3的矩阵。
% 水平串联和垂直串联
n = zeros(3,3)
[m,n]
[m;n]
矩阵与一个数运算,结果会应用到矩阵所有元素上。如果矩阵和矩阵运算,结果遵循矩阵计算法则。如果希望将两个矩阵对应元素进行计算,需要使用.运算符
的语法。
% 矩阵运算
a
a*3
a+a
a*a
a.*a
结果如下。
a =
1 2
3 4
ans =
3 6
9 12
ans =
2 4
6 8
ans =
7 10
15 22
ans =
1 4
9 16
索引运算
有时候可能需要对数组或矩阵中某些值进行计算,这时候可以利用索引运算进行。如果尝试访问矩阵中不存在的元素,会导致错误。不过如果是对不存在的元素赋值,Matlab会自动扩展矩阵,新创建的元素都为0.
a = [1,2,3; 4,5,6; 7,7,8]
>> a(1,1)
ans =
1
>