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
廣告
© . All rights reserved.