向量: 簡短格式 (VECTOR 指令)

VECTOR 可用來建立新變數的清單,以及同步參照這些變數的向量。 VECTOR 的簡短格式指定英數字元的字首,以括弧括住,後面接著向量的長度 (要建立的變數數目)。

  • 新變數名稱不得與現有變數衝突。 如果字首以 # 字元開頭,則會根據標為暫時刪除變數的規則來建立新變數。
  • 藉由在長度規格之前命名兩個以上字首,可以建立多個相同長度的向量。
  • 依預設,以 VECTOR receive F8.2 格式建立的變數。 您可以指定變數的替代格式,方法是在括弧內包含長度規格的格式規格。 可以按任一順序指定格式和長度,並且必須以至少一個空格或逗點區隔。 如果建立多個向量,則除非您另有指定,否則指派的格式會套用至所有向量。

從一組新的標為暫時刪除變數建立向量

VECTOR #WORK(10).
  • 程式會透過 #WORK10建立向量 #WORK,其參照 10 個標為暫時刪除變數: #WORK1, #WORK2, 等。 因此,向量的元素 #WORK(5) 是變數 #WORK5

建立相同長度的多個向量

VECTOR X,Y(5).
  • VECTOR 會建立向量 XY, 參照新變數 X1X5Y1Y5

指定向量變數的格式

VECTOR X(6,A5).
  • VECTOR 會將 A5 格式指派給變數 X1X6

建立不同長度及格式的多個向量

VECTOR X,Y(A5,6) Z(3,F2).
  • VECTOR 會將變數 X1A5 格式指派給 X6 ,將 Y1 指派給 Y6,並將變數 Z1F2 格式指派給 Z3。 不論格式或長度是先在括弧內指定。

使用簡短格式的 VECTOR 預先決定變數順序

INPUT PROGRAM.
VECTOR X Y (4,F8.2).
DATA LIST / X4 Y4 X3 Y3 X2 Y2 X1 Y1 1-8.
END INPUT PROGRAM.
 
PRINT /X1 TO X4  Y1 TO Y4.
BEGIN DATA
49382716
49382716
49382716
END DATA.
  • DATA LIST 指令上定義一組變數之前,簡短格式的 VECTOR 可用來建立這些變數的字典順序。 若要預先決定變數順序, VECTORDATA LIST 必須含括在 INPUT PROGRAMEND INPUT PROGRAM 指令中。
  • 作用中資料集的變數順序為 X1X2X3、 及 X4,以及 Y1Y2Y3Y4,即使它們在 DATA LIST上以不同順序定義。
  • 程式會以 DATA LIST上指定的 F1 格式讀取變數。 它會以 VECTOR (F8.2) 上指派的輸出格式來寫入變數。
  • 預先決定變數順序的另一種方法是在 DATA LIST 指令 (請參閱 數值 指令的變數順序範例) 之前使用 NUMERIC (如果變數是字串變數,則為 STRING )。 使用 NUMERICSTRING 的優點是您可以將助記名稱指派給變數。

向量指派中的名稱衝突

INPUT PROGRAM.
NUMERIC MIN MINI_A MINI_B MINIM(F2).
COMPUTE MINI_A = MINI(2).  /*MINI is function MINIMUM.
VECTOR MINI(3,F2).
DO REPEAT I = 1 TO 3.
+  COMPUTE MINI(I) = -I.
END REPEAT.
COMPUTE MIN = MIN(1).     /*The second MIN is function MINIMUM.
COMPUTE MINI_B = MINI(2). /*MINI now references vector MINI
COMPUTE MINIM = MINIM(3). /*The second MINIM is function MINIMUM.
END CASE. 
END FILE.
END INPUT PROGRAM.
  • 在此範例中,尺度 (在 NUMERIC上命名的變數)、向量 (在 VECTOR上命名) 及統計函數 MINIMUM之間可能存在名稱衝突。
  • 未後接左括弧的名稱會被視為純量。
  • 當後接左括弧的名稱可能參照向量元素或函數時,會優先使用向量。