- Matlab 教程
- MATLAB - 首页
- MATLAB - 概述
- MATLAB - 功能
- MATLAB - 环境设置
- MATLAB - 编辑器
- MATLAB - 在线
- MATLAB - 工作区
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 日期和时间
- MATLAB - 数字
- MATLAB - 随机数
- MATLAB - 字符串和字符
- MATLAB - 文本格式化
- MATLAB - 时间表
- MATLAB - M 文件
- MATLAB - 冒号表示法
- MATLAB - 数据导入
- MATLAB - 数据导出
- MATLAB - 数据归一化
- MATLAB - 预定义变量
- MATLAB - 决策
- MATLAB - 决策语句
- MATLAB - if end 语句
- MATLAB - if else 语句
- MATLAB - if…elseif else 语句
- MATLAB - 嵌套 if 语句
- MATLAB - switch 语句
- MATLAB - 嵌套 switch
- MATLAB - 循环
- MATLAB - 循环
- MATLAB - for 循环
- MATLAB - while 循环
- MATLAB - 嵌套循环
- MATLAB - break 语句
- MATLAB - continue 语句
- MATLAB - end 语句
- MATLAB - 数组
- MATLAB - 数组
- MATLAB - 向量
- MATLAB - 转置运算符
- MATLAB - 数组索引
- MATLAB - 多维数组
- MATLAB - 兼容数组
- MATLAB - 分类数组
- MATLAB - 元胞数组
- MATLAB - 矩阵
- MATLAB - 稀疏矩阵
- MATLAB - 表格
- MATLAB - 结构体
- MATLAB - 数组乘法
- MATLAB - 数组除法
- MATLAB - 数组函数
- MATLAB - 函数
- MATLAB - 函数
- MATLAB - 函数参数
- MATLAB - 匿名函数
- MATLAB - 嵌套函数
- MATLAB - 返回语句
- MATLAB - 空函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - filter 函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级顺序
- MATLAB - map 函数
- MATLAB - mean 函数
- MATLAB - end 函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - try…catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 二维线图
- MATLAB - 三维图
- MATLAB - 格式化绘图
- MATLAB - 对数坐标轴图
- MATLAB - 绘制误差条
- MATLAB - 绘制三维等值线图
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 二维数组插值
- MATLAB - 三维数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 二维逆余弦变换
- MATLAB - 向坐标轴添加图例
- MATLAB - 面向对象
- MATLAB - 面向对象编程
- MATLAB - 类和对象
- MATLAB - 函数重载
- MATLAB - 运算符重载
- MATLAB - 用户定义类
- MATLAB - 复制对象
- MATLAB - 代数
- MATLAB - 线性代数
- MATLAB - 高斯消元法
- MATLAB - 高斯-约旦消元法
- MATLAB - 简化行阶梯形式
- MATLAB - 特征值和特征向量
- MATLAB - 积分
- MATLAB - 积分
- MATLAB - 二重积分
- MATLAB - 梯形法则
- MATLAB - 辛普森法则
- MATLAB - 其他
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 矩阵的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用资源
- MATLAB - 快速指南
- MATLAB - 有用资源
- MATLAB - 讨论
MATLAB - 全局变量
MATLAB 中的全局变量是可以从代码的任何部分(包括函数和脚本内部)访问和修改的变量,无需将其作为函数参数传递或作为返回值返回。虽然全局变量可能很方便,但应谨慎使用,因为它们会使代码模块化程度降低,并难以调试。
关于全局变量的重要事项
- 如果在第一次使用全局声明时全局变量不存在,它将被初始化为一个空的 0x0 矩阵。
- 如果当前工作区中已经存在与全局变量名称相同的变量,MATLAB 将发出警告并调整该变量的值和作用域以匹配全局变量。
全局变量的声明
要在 MATLAB 中声明全局变量,需要使用 global 关键字后跟变量名。这告诉 MATLAB 该变量应具有全局作用域,并且可以从代码中的任何位置访问。
语法
global my_name;
关于全局变量的重要事项:
- 当全局变量第一次使用且不存在时,它被初始化为一个空的 0x0 矩阵。
- 如果当前工作区中已经存在与全局变量名称相同的变量,MATLAB 将发出警告并使现有变量的值和作用域与全局变量同步。
- 当多个函数将特定变量声明为全局变量时,它们都引用该变量的公共实例。在一个函数中对该变量所做的任何修改都将反映在所有其他已将其声明为全局变量的函数中,确保所有函数共享相同的数据。
全局变量的优点
- 访问全局变量 - 全局变量可以从代码的任何部分访问,这使得它们对于在不同函数、脚本或工作区之间共享数据非常有用。
- 简便性 - 它们可以简化在函数之间传递数据,尤其是在多个函数需要访问相同数据的情况下。
全局变量的缺点
- 修改全局变量 - 全局变量可以在代码的任何位置修改,这使得跟踪更改和调试意外行为具有挑战性。
- 可读性 - 过度使用全局变量会使代码的可读性和理解难度降低,因为不清楚变量的值在哪里被修改。
- 变量的作用域 - 如果在函数或脚本中使用与全局变量相同的变量名,则可能导致作用域混淆和意外后果。
- 调试 调试变得更加困难,因为您需要追踪全局变量的值在哪里以及如何被修改。
在函数之间共享全局变量
您可以将变量声明为全局变量,然后通过在要访问或修改它的函数体中将其声明为全局变量来在不同的函数中使用它。
以下是语法
global myGlobalVar; function myFunction() global myGlobalVar; % Access or modify myGlobalVar as needed end
让我们来看一个实际的例子。现在创建一个新的脚本文件并命名为 **testglobalvariables.m**,并将以下代码粘贴到其中。
global globalVar; globalVar = 42; disp(globalVar); testGlobalVar() function testGlobalVar() global globalVar; globalVar = globalVar + 10; disp(globalVar); end
现在在 matlab 命令窗口中键入 test 并按 Enter。
>> testglobalvariables 42 52
从工作区清除全局变量
全局变量拥有自己的工作区,该工作区与基工作区和函数工作区是分开的。
完成全局变量的使用后,可以使用以下命令将其从工作区清除:
clear global variable
这将从所有工作区清除全局变量。要仅从当前工作区清除全局变量,只需使用以下命令:
clear variable
广告