Octave 笔记

2020-09-03 09:43:31 浏览数 (1)

简单用了一下 Octave,发现用他来进行数据运算、矢量绘制等操作的时候还是非常方便的,在此做一点简单笔记.

注释

% 或者 # 为单行注释

代码语言:javascript复制
# this is line comment
% this is line comment

%{ 与 %} 或者 #{ 与 #} 为块(多行)注释

代码语言:javascript复制
%{
    block comment
%}

#{
    block comment
#}
向量

在 Octave 中我们可以直接创建向量,使用 空格 或者 逗号 来分隔列;使用 分号来分隔行.

代码语言:javascript复制
>> v = [1, 2, 3] % same as v = [1 2 3]

v =
   1   2   3

上面的 v 便是(1行3列)行向量,而下面的 v 则是(3行1列)列向量

代码语言:javascript复制
>> v = [1; 2; 3]

v =
   1
   2
   3

通过综合使用逗号(或空格)和分号,我们就可以创建矩阵了:

代码语言:javascript复制
>> v = [1, 2; 3, 4]
v =
   1   2
   3   4

另外,冒号还能用于表示范围区间,可以方便我们创建向量和矩阵:

  • a : b 表示 从 a 到 b
  • a : b : c => 表示 从 a 到 c, 中间的间隔为 b
代码语言:javascript复制
>> v = [1 : 3; 4 : 6]
v =
   1   2   3
   4   5   6
   
>> v = [1 : 2 : 5; 2 : 2 : 6]
v =
   1   3   5
   2   4   6
访问
  • 访问元素

我们可以按索引号来直接访问元素:

代码语言:javascript复制
v = [1, 2, 3]

% v 是行向量, v(2) 访问直接其第二列元素
>> v(2)
ans =  2
代码语言:javascript复制
v = [1; 2; 3]

% v 是列向量, v(2) 访问直接其第二行元素
>> v(2)
ans =  2
代码语言:javascript复制
v = [1 : 3; 4 : 6; 7 : 9]
   
% v 是矩阵, A(2, 2) 访问其第二行第二列元素
>> v(2, 2)
ans =  5
  • 访问单行(或单列)

借助之前提到的冒号,我们可以直接访问单行(或单列)

代码语言:javascript复制
v = [1 : 3; 4 : 6; 7 : 9]
   
% v 是矩阵, A(2, :) 访问其第二行所有元素
>> v(2, :)
ans = 
   4   5   6
   
% 如果直接使用 A(2) 访问的话,返回的是第二行的第一个元素
>> v(2)
ans = 4
  • 访问多行(或多列)

通过向量索引的方式,我们可以访问多行(或多列)

代码语言:javascript复制
v = [1 : 3; 4 : 6; 7 : 9]

% v(:, [1, 3]) 访问 v 中 第一列 和 第三列的所有元素
>> v(:, [1, 3])
ans =
   1   3
   4   6
   7   9

% v([1, 3], :) 访问 v 中 第一行 和 第三行的所有元素
>> v([1, 3], :)
ans =
   1   2   3
   7   8   9

% v([1, 3], [1, 2]) 访问 v 第一行 和 第三行 中的 第一列 和 第二列 元素
>> v([1, 3], [1, 2])
ans =
   1   2
   7   8

0 人点赞