1. A method of clustering data, comprising the steps of: (a) providing a set of first matrices relating to at least three types of objects, each respective first matrix comprising a set of features and a set of respective relations with respect to other objects; (b) automatically generating a second matrix comprising a set of values, which maximizes an objective function of the sets of first matrices, features and relations; and (c) automatically transforming each second matrix into a cluster indicator matrix.