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, with at least one automated processor, 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, with at least one automated processor, wherein the second matrix is a function of at least: the set of first matrices, representing respective relations between distinct objects as members of m sets to be clustered into k p disjoint clusters, where p is an index running from 1 to m; at least one feature matrix denoting feature values for an associated object; a plurality of tentative cluster characterization matrices; and a set of weights for different types of relations and features.