Skip to content

Vectors

This part will cover

  • Creating vectors
  • Spaces Separate Scalars

You are an astronaut aboard the International Space Station. You are currently orbiting the Earth at an altitude of 413km at a speed of 28,013km/h.

In brief intervals of time spent waiting between tasks, you enjoy logging temperatures from sensors all around the ship into a small notebook. Unfortunately for you, your notebook’s completely filled, and none of your colleagues seem to share your enthusiasm for data collection. Unfortunately for mission control, you’ve decided to use critical APL machines on board to store your data.

Typing as fast as possible without the aid of gravity, you manage to write some data without being caught.

       TEMPERATURE_PAGE1_YEAR1_DAY2_HOUR7_MINUTE42  21.4
       TEMPERATURE_PAGE1_YEAR1_DAY2_HOUR8_MINUTE47  21.8
       TEMPERATURE_PAGE1_YEAR1_DAY2_HOUR10_MINUTE10  22.0
       TEMPERATURE_PAGE1_YEAR1_DAY2_HOUR12_MINUTE01  21.5
       TEMPERATURE_PAGE1_YEAR1_DAY2_HOUR14_MINUTE36  21.3
       TEMPERATURE_PAGE1_YEAR1_DAY2_HOUR16_MINUTE50  22.3
       TEMPERATURE_PAGE2_YEAR1_DAY2_HOUR18_MINUTE23  22.8
       TEMPERATURE_PAGE2_YEAR1_DAY2_HOUR19_MINUTE30  21.5
       TEMPERATURE_PAGE2_YEAR1_DAY2_HOUR21_MINUTE12  22.1
       TEMPERATURE_PAGE2_YEAR1_DAY3_HOUR7_MINUTE15  22.0
       TEMPERATURE_PAGE2_YEAR1_DAY3_HOUR8_MINUTE30  21.9
       TEMPERATURE_PAGE2_YEAR1_DAY3_HOUR9_MINUTE45  22.4

This is not the most efficient, or readable, method to input data into your system, and while flicking through your APL notes now crowded with temperatures, you refresh your workspace and instead decide to store your data using vectors.


Vectors are lines of values. They are defined by writing values separated by one or more spaces.

Vectors are also ordered, it is possible to talk about the element at a specific position, called an index. For example, the first (1) element, the second (2) element, and so on. In code, they can be accessed by adding square brackets to the vector with an index (or multiple indices) in between.

      ⍝ Examples of scalars
      SUM  ¯1÷12
      EPSILON  2*¯53
      PIGS  3
      BROTHERS  7
      PI  11.001001 ⍝ Note that the decimal separator in APL is the dot
      THIEVES  40
      PRIME  57
      MAGIC  1597463007


      ⍝ Examples of vectors
      FIBB  1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
      QUARTER  1 ¯2 3 ¯4 5 ¯6 7 ¯8 9 ¯10 11 ¯12 13 ¯14 15 ¯16 17 ¯18
      KEY  9 249 17 2 157 116 227 91 216 65 86 197 99 86 136 192 


      ⍝ This is a vector
      LIST  SUM EPSILON PIGS BROTHERS PI THIEVES PRIME MAGIC
      LIST
¯0.08333333333 1.110223025E¯16 3 7 11.001001 40 57 1597463007

      ⍝ Selecting a single element using an index
      LIST[1] 
¯0.08333333333

      ⍝ Selecting multiple values using indices
      LIST[3 4 5]
3 7 11.001001

      ⍝ Selecting multiple values using a vector of indices
      INDICES  5 6 7
      LIST[INDICES] 
11.001001 40 57


      ⍝ The above temperature lists as vectors
      TEMPERATURE_PAGE1  21.4 21.8 22.0 21.5 21.3 22.3
      TEMPERATURE_PAGE2  22.8 21.5 22.1 22.0 21.9 22.4

      TEMPERATURE_PAGE1[1 2 3]
      21.4 21.8 22.0