2017-05-14 3 views
1

Je construis une interface graphique dans MATLAB et je veux afficher des nuages ​​de points dans une figure à l'intérieur de cette interface graphique. L'interface graphique joue un enregistrement 3D et me permet de mettre en pause/jouer, de changer de vitesse et de changer la vidéo que je joue.Comment afficher un nuage de points à l'intérieur de MATLAB GUI?

Jusqu'ici, j'ai utilisé pcplayer pour afficher les nuages ​​de points. Par exemple:

player = pcplayer(xlimits, ylimits, zlimits, 'MarkerSize', 100); 
view(player,point_cloud); 

Toutefois, cela ouvre une nouvelle figure. Je l'ai essayé d'utiliser PCShow:

pcshow(point_cloud, 'Parent', axes_to_plot); 

Cela a fonctionné, mais seulement pour la première image de la vidéo. Plus tard, je reçois une erreur:

Property assignment is not allowed when the object is empty. Use subscripted assignment to create an array element.

Ce n'est pas un problème avec les nuages ​​que je suis en train de tirer: ils ne sont pas vides, et en plus d'essayer de tirer le même nuage entraîne deux fois dans la même erreur. Il se passe quelque chose que je ne comprends pas.

Est-ce que quelqu'un sait comment résoudre mon problème? J'utilise la version 2016a de MATLAB.

Répondre

0

Salut j'ai le même problème avec exactement la même erreur. Cela a commencé depuis que j'ai commencé à utiliser matlab 2016b, n'a pas eu ce problème avec 2015b. Je n'ai pas la solution exacte, mais ce que j'ai fait est que j'ai mis le pcshow pour essayer d'attraper l'environnement pour supprimer l'erreur. Cela fonctionne pour moi parce que pcshow fait la figure et jette ensuite l'erreur.

try 
    pcshow(point_cloud, 'Parent', axes_to_plot); 
catch 
end 

Encore une fois ce n'est pas la solution pour résoudre l'erreur, mais pourrait faire fonctionner votre code, il a fait le mien.