code: def selfSimilarityMatrix(featureVectors):
      '''
      This function computes the self-similarity matrix for a sequence
      of feature vectors.
      ARGUMENTS:
       - featureVectors:     a numpy matrix (nDims x nVectors) whose i-th column
                             corresponds to the i-th feature vector
  
      RETURNS:
       - S:                  the self-similarity matrix (nVectors x nVectors)
      '''
  
      [nDims, nVectors] = featureVectors.shape
      [featureVectors2, MEAN, STD] = aT.normalizeFeatures([featureVectors.T])
      featureVectors2 = featureVectors2[0].T
      S = 1.0 - distance.squareform(distance.pdist(featureVectors2.T, 'cosine'))
      return f selfSimilarityMatrix(featureVectors):
      '''
      This function computes the self-similarity matrix for a sequence
      of feature vectors.
      ARGUMENTS:
       - featureVectors:     a numpy matrix (nDims x nVectors) whose i-th column
                             corresponds to the i-th feature vector
  
      RETURNS:
       - S:                  the self-similarity matrix (nVectors x nVectors)
      '''
  
      [nDims, nVectors] = featureVectors.shape
      [featureVectors2, MEAN, STD] = aT.normalizeFeatures([featureVectors.T])
      featureVectors2 = featureVectors2[0].T
      S = 1.0 - distance.squareform(distance.pdist(featureVectors2.T, 'cosine'))
      return S
docs: This function computes the self-similarity matrix for a sequence
      of feature vectors.
      ARGUMENTS:
       - featureVectors:     a numpy matrix (nDims x nVectors) whose i-th column
                             corresponds to the i-th feature vector
  
      RETURNS:
       - S:                  the self-similarity matrix (nVectors x nVectors)