GNU Octave 基础教程(3):变量与数据类型详解(一)

发布于:2025-06-22 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

1. 变量的定义

2. 变量命名规则

3. 常见数据类型

3.1. 数值类型(Numeric)

3.2. 布尔值(Logical)

3.3. 字符与字符串

3.4. 向量 (Vector)

3.5. 矩阵 (Matrix)

4. 命令窗口中的实用操作

5. 总结


1. 变量的定义

在 Octave 中,变量的定义非常直观,只需要使用赋值符号 = 即可,比如:

x = true;            % 布尔
name = 'Alice';      % 字符
temperature = 36.5;  % 浮点

这三条语句创建了三个变量,一个布尔变量 x,一个字符串变量 name,以及一个浮点数变量 temperature。注意 GNU Octave 不需要像 C++ 一样事先声明变量的类型。行末的分号 ";" 用于抑制窗口输出;若省略,则会在命令窗口输出赋值的结果。

2. 变量命名规则

GNU Octave 变量命名遵循以下基本规则:

  • 必须以字母开头(a-z,A-Z),后续可以包含数字、下划线(_)。

  • 区分大小写,例如 Valuevalue 是不同的变量。

  • 不建议使用 GNU Octave 的关键字(如 if, end, while 等)作为变量名。

比如:

1a = 5;       % 不符合命名规则,会报 syntax error
my_var = 123; 
My_Var = 456; 

 My_Var 与 my_var 变量的定义没有问题,但它们是不同的变量。

3. 常见数据类型

3.1. 数值类型(Numeric)

包括整数和浮点数:

a = 42;     % 整数 
b = 3.14;   % 浮点数

注意:在 GNU Octave 中,所有数值默认都是浮点型(即使写的是整数形式),并且在内部默认以双精度浮点数(double)存储。

3.2. 布尔值(Logical)

布尔值用于逻辑判断,只有两个可能值:truefalse(或 1 和 0)。

is_valid = true; 
is_ready = false;

3.3. 字符与字符串

字符串可以使用单引号 '...' 定义:

greeting = 'Hello, Octave!';

单个字符其实也是一个长度为 1 的字符串:

letter = 'A';

注意:Octave 也支持双引号("...")创建字符串,但单引号是更常见的写法。GNU Octave 提供一些常用的字符串操作函数,比如:

strcat(str1, str2)   % 字符串拼接
length(str1)         % 获取长度

在 GNU Octave 命令行中跑几个例子,如下:

3.4. 向量 (Vector)

在 GNU Octave 中,向量是一维数组,可以是:

  • 行向量(1 × n)

  • 列向量(n × 1)

GNU Octave 可以用方括号 [] 或者冒号 :运算符定义向量,比如:

v1 = [1, 2, 3];       % 行向量
v2 = [1; 2; 3];       % 列向量

v3 = 1:5;        % [1 2 3 4 5]
v4 = 0:0.5:2;    % [0 0.5 1.0 1.5 2.0]

    向量元素的索引,访问与修改使用圆括号 (),示例代码如下:

    v = [10, 20, 30];
    v(2)            % 返回 20
    v(end)          % 返回最后一个元素(30)
    v(1) = 99;      % 修改第一个元素
    
    

    这里顺便总结一下,向量的其它常用运算类型,如下表:

    运算类型 示例 说明
    加法 v1 + v2 元素对应相加
    数乘 2 * v 每个元素乘以 2
    点乘 v1 .* v2 元素逐项相乘(Hadamard)
    转置 v' 行向量转列向量
    内积 dot(v1, v2) 点积(数量积)
    向量长度 length(v) 返回元素个数
    归一化 v / norm(v) 转为单位向量
    3.5. 矩阵 (Matrix)

    在 GNU Octave 中,矩阵(Matrix)是一个二维数值数组,既可以表示数学矩阵,也可以视作“二维向量”。GNU Octave 将所有数值变量都视为矩阵,哪怕它是标量或向量。GNU Octave 有很多种创建矩阵的方法,代码如下:

    % 创建一个 2×2 矩阵
    A = [1, 2; 3, 4];   
    
    
    % 内置函数创建诉组
    zeros(3, 4)     % 3×4 全零矩阵
    ones(2, 2)      % 2×2 全 1 矩阵
    eye(3)          % 3×3 单位矩阵
    rand(2, 3)      % 2×3 随机矩阵(0~1)
    
    
    % 利用 reshape 函数
    A = reshape(1:6, 2, 3);  % 按列填充,2 行 3 列

    矩阵常用的运算类型有很多和向量重合,但又不尽相同:

    运算类型 示例 说明
    矩阵加法 A + B 对应元素相加
    矩阵乘法 A * B 线性代数中的矩阵乘法
    元素乘法 A .* B 对应元素相乘(Hadamard积)
    转置 A' 共轭转置(复数时)
    非共轭转置 A.' 仅交换行列
    逆矩阵 inv(A) A 的逆矩阵(若可逆)
    行列式 det(A) 求矩阵的行列式
    特征值 eig(A) 求特征值
    求解线性方程 x = A \ b 解 Ax = b

    4. 命令窗口中的实用操作

    实用操作有很多,这里直接给出几个最长用的函数:

    class(x)      % 查看变量类型
    
    clear(x)      % 删除变量
    
    disp(x)       % 查看变量值
    
    isnumeric(x)  % 是否是数值型
    
    ischar(x)	  % 是否是字符
    
    islogical(x)  % 是否是布尔值

      在 GNU Octave 的命令行中举几个例子:

      5. 总结

      本文介绍了 GNU Octave 中最基本的变量定义方式与数据类型。初学者可以从数值、布尔值、字符串开始,然后过度到向量与矩阵的学习,逐步熟悉 Octave 的数据类型和基本语法。


      网站公告

      今日签到

      点亮在社区的每一天
      去签到