Octave 入门教程目录,请点击: https://blog.csdn.net/benzhujie1245com/article/details/83146777
本内容将介绍 Octave 中的矩阵的创建、引用及相关运算。
在 Octave 中创建矩阵有以下规则:
矩阵元素必须在 [] 内;矩阵的同行元素之间用空格或逗号(,)分隔;矩阵的行与行之间用分号(;)分隔;矩阵的元素可以是数值、变量、表达式或函数;矩阵的尺寸不必预先定义。下面的例子中创建了一个 4x5 的矩阵:
>>a = [1,2,3,4; 2,3,4,5; 3,4,5,6]a = 1 2 3 4 2 3 4 5 3 4 5 6>>通过复制一个矩阵的元素创建一个新的矩阵:
>> a = [1,2,3,4; 2,3,4,5; 3,4,5,6];>> b = a([2,3,2,3], :) % 复制矩阵 a 的第 2 和 3 行两次来创建新的矩阵 bb = 2 3 4 5 3 4 5 6 2 3 4 5 3 4 5 6>>除了上面的直接输入创建矩阵外,还可以使用***创建特殊数组的函数***创建矩阵,详见请参照这里。
1.2 引用矩阵的元素 方法描述a(m, n)引用矩阵 a 的第 m 行和第 n 列的元素(索引值从 1 开始)a(m, : )引用矩阵 a 的第 m 行的所有元素a(m1:m2, )引用矩阵 a 的第 m1 行到 m2 行的所有元素a(:, n)引用矩阵 a 的第 n 列中的所有元素a(:, n1:n2)引用矩阵 a 的第 n1 列到 n2 列的所有元素a(:, : )引用矩阵 a 的所有元素例如:
>>a = [1,2,3,4; 2,3,4,5; 3,4,5,6];>>a(3,4)ans = 6>>a(2,:)ans = 2 3 4 5>>a(2:3, :)ans = 2 3 4 5 3 4 5 6>>a(:, 2)ans = 2 3 4>>a(:, 2:4)ans = 2 3 4 3 4 5 4 5 6>>a(2:3, 2:4)ans = 3 4 5 4 5 6>>a(:, :)ans = 1 2 3 4 2 3 4 5 3 4 5 6>> 1.3 删除矩阵中的行或列 通过向某行或某列分配一组空的方括号 [] 来删除矩阵的整行或列。
例如:
当两个矩阵进行加减法时,这两个矩阵必须具有相同数量的行和列,并且具有相同的元素。矩阵加减法产生相同类型的矩阵,原始矩阵的每个元素逐一进行加减法。
例如:
Octave 中两种矩阵除法符号,即左除()和右除(/)。两个矩阵必须具有相同数量的行和列。
1.4.3 矩阵的标量运算 当矩阵相加、相减、相乘或相除一个数组时,被称为标量运算。
标量运算产生一个具有相同数量的行与列的新矩阵,其原始矩阵的每个元素都相加、相减、乘以或除以数字。
例如:
矩阵的转置切换矩阵的行和列。在 Octave 中使用单引号(')表示。
例如:
可以连接两个矩阵来创建一个新矩阵。使用中括号([],连接运算符)来实现。
Octave 允许以下两种类型的连接:
例如:
>> a = [10,12,23; 14,8,6]a = 10 12 23 14 8 6>> b = [12,31,45; 8,0,9]b = 12 31 45 8 0 9>> c = [a, b]c = 10 12 23 12 31 45 14 8 6 8 0 9>> d = [a; b]d = 10 12 23 14 8 6 12 31 45 8 0 9>> 1.4.6 矩阵乘法 假设有两个矩阵 A(m*n) 和 B(n*p),则它们相乘可以产生一个 m*p 的新矩阵 C。只有当 A 中的列数 n 等于 B 中的函数 n 时,才能进行矩阵乘法。
所得的矩阵 C 中的(i,j)位置的元素值的求取步骤:
例如:
>> a = [1,2,3; 4,5,6; 7,8,9];>> b = [3,4; 5,6; 7,8];>> c = a * bc = 34 40 79 94 124 148>> 1.4.7 矩阵的行列式在 Octave 中使用 det 函数计算矩阵的行列式。矩阵 A 的行列式由 det() 计算。
1.4.8 逆矩阵 矩阵 A A A 的逆矩阵记为 A − 1 A^{-1} A−1,使得下面的关系成立:
A A − 1 = A − 1 = 1 AA^{-1}=A^{-1}=1 AA−1=A−1=1
并不是每个矩阵都有逆矩阵,如果一个矩阵的行列式为零,则不存在逆矩阵,这样的矩阵是奇异的。
在 Octave 中使用 inv 函数求逆矩阵。矩阵 A 的逆矩阵由 inv(A) 计算。
参考:
[1] https://www.w3cschool.cn/matlab/
[2] http://m.yiibai.com/matlab/