In this paper, the utilization of mobile devices (MDs) as decode-and-forward relays in a device-to-device assisted virtual MIMO (VMIMO) system is studied. Single antenna MDs are randomly distributed on a 2D plane according to a Poisson point process, and only a subset of them are sources leaving other idle MDs available to assist them (relays). Our goal is to develop an efficient algorithm to cluster each source with a subset of available relays to form a VMIMO system under a limited feedback assumption. We first show that the NP- hard optimization problem of precoding in our scenario can be approximately solved by semidefinite relaxation. We investigate a special case with a single source and analytically derive an upper bound on the average spectral efficiency of the VMIMO system. Then, we propose an optimal greedy algorithm that achieves this bound. We further exploit these results to obtain a polynomial time clustering algorithm for the general case with multiple sources. Finally, numerical simulations are performed to compare the performance of our algorithm with that of an exhaustive clustering algorithm, and it shown that these numerical results corroborate the efficiency of our algorithm.