I believe that what you are asking for is clustering. Conventionally, though, the items (cities, in your case) are stored in the rows, and the features ("variables") are stored in the columns.
Clustering methods attempt to group items into categories ("clusters"), so that items within a cluster are similar, and those in differing clusters are dissimilar. In any given situation, though, the following are subject to interpretation:
How is similarity determined?
How many clusters should there be?
Probably the most common algorithm for performing clustering is k-means clustering, which uses a geometric distance measure to determine similarity, but the analyst needs to indicate the number of clusters, k.
Unlike classification, there isn't an objective "right answer" in clustering. Some clusters might make more sense than others, but it is all up to which features are used, what clustering algorithm is chosen and how its parameters are set.
Data Mining in MATLAB