- 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
廣告