MATLAB - 預定義變數



預定義變數是在程式語言中已經定義好的變數。當您嘗試列印它們時,它們已經具有一個值。它們不被保留為關鍵字,可以在您的程式中使用。如果直接使用,這些變數將具有一定的值,但可以被覆蓋,並且可以在程式碼中用作變數名。

良好的程式設計實踐是不在程式碼中使用預定義變數作為變數名,因為這可能會導致意外的結果。

MATLAB 中的預定義變數

以下是 Matlab 中可用的預定義變數列表。

變數 描述
pi 在這裡,pi 變數將給出 Π 的值,精確到 15 位有效數字。
i,j 它們是複數的變數。
inf 顯示無窮大值。例如,零除法的結果。
NaN 它表示“非數字”,是函式返回的一些不需要的結果。
clock 這將為您提供當前時間,以向量格式表示年份、月份、日期、小時、分鐘、秒。
date 一個包含今天日期的字串值。
eps 它儲存一個稱為 epsilon 的最小值。
ans 當您使用命令列 Matlab 工具時,會注意到這一點。結果儲存在 ans 中,該變數在 Matlab 工作區中可用。
whos 列出 Matlab 中的變數
global 將給定變數宣告為全域性變數

讓我們透過一個示例來了解 Matlab 中每個預定義變數。

pi

以下是在 Matlab 中使用 pi 的示例。

>> pi

ans =

    3.1416

>> 

如前所述,預定義變數不是保留關鍵字,可以像下面這樣被覆蓋。

>> pi = 2

pi =

     2

>> 

I,j: 複數

以下是在 Matlab 中檢查 i 和 j 的值的示例。

>> i

ans =

   0.0000 + 1.0000i

>>
>> j

ans =

   0.0000 + 1.0000i

>> 

將 j 的值更改為 12 的示例。

>> j = 12

j =

    12

>> i+j

ans =

  12.0000 + 1.0000i

>> 

複數 i 的示例

x = [1:3]';
y = [5:-3:3]';

z = x+i*y

在 Matlab 中執行後,您將得到

>> x = [1:3]';
y = [5:-3:3]';

z = x+i*y

z =

   1 + 5i
   2 + 5i
   3 + 5i

>> 

複數 i 的示例

x = [1:3]';
y = [5:-3:3]';

z = x+j*y

在 Matlab 中執行後,您將得到

>> x = [1:3]';
y = [5:-3:3]';

z = x+j*y

z =

   1 + 5i
   2 + 5i
   3 + 5i

>> 

Inf: 無窮大值

以下是一個示例

>> inf

ans =

   Inf

>> 

您還可以使用 Inf 建立無窮大值的陣列,如下面的示例所示

X = Inf(3)

執行後,您將得到

>> X = Inf(3)

X =

   Inf   Inf   Inf
   Inf   Inf   Inf
   Inf   Inf   Inf

>> 

NaN: 非數字

不是實數或複數,具有特殊值的數值稱為 NaN,它代表“非數字”。對於 0/0、inf/inf 等表示式,將得到 NaN 作為結果。

以下是在 Matlab 中使用 NaN 的示例。

>> NaN

ans =

   NaN

>>

在此示例中,我們將建立如下所示的 NaN 陣列

X = NaN(3)

在 Matlab 中執行後,您將得到

>> X = NaN(3)

X =

   NaN   NaN   NaN
   NaN   NaN   NaN
   NaN   NaN   NaN

>> 

在這裡,我們將建立一個 2x3x4 的 NaN 值陣列,然後顯示其大小。

X = NaN(2,3,4);
size(X)

在 Matlab 中執行後,您將得到

>> X = NaN(2,3,4);
size(X)

ans =

     2     3     4

>> 

Clock: 獲取當前日期和時間

clock 將返回一個日期向量,其中包含 [年 月 日 時 分 秒]。

以下是在 Matlab 中使用 clock 的示例。

>> clock

ans =

   1.0e+03 *

    2.0230    0.0040    0.0300    0.0100    0.0400    0.0434

>> 

您還可以將 clock 用作普通變數並覆蓋它。

>> clock =1

clock =

     1

>> 

Date: 返回今天的日期

以下是在 Matlab 中使用 date 的示例。

>> date

ans =

    '30-Apr-2023'

>> 

您還可以像下面這樣覆蓋其值。

>> date = "today"

date = 

    "today"

>> 

eps: Epsilon 值

以下是一個示例

>> eps

ans =

   2.2204e-16

>> 

您還可以像下面這樣覆蓋其值。

>> eps = 11

eps =

    11

>> 

ans: 儲存的結果

以下是一個示例

>> 1+1

ans =

     2

>>

您可以將 ans 用作普通變數名

>> ans = 10

ans =

    10

>> 

whos

此命令將列出工作區中所有變數及其大小和型別。

示例

>> whos
  Name      Size            Bytes  Class     Attributes

  A         3x3                72  double              
  B         4x4               128  double              
  a         1x1                 8  double              

>> 

Global

這將使變數成為全域性變數。

語法

global  var1 var2  … varN

這將使 var1 var2 … varN 在範圍內全域性可用。

以下是一個全域性變數的示例

global test
test = 10

在 Matlab 中執行後,您將得到以下內容

>> global test
>> test = 10

test =

    10

>> whos
  Name      Size            Bytes  Class     Attributes

  A         3x3                72  double              
  B         4x4               128  double              
  C         1x1                 8  double              
  a         1x1                 8  double              
  test      1x1                 8  double    global    

>>
廣告