Skocz do zawartości

Matlab Wykres 3D z punktów


davidpi

Pomocna odpowiedź

Witam.

\Mam zapewne prosty problem ale nie potrafię go ogarnąć.

Wyznaczyłem przestrzeń roboczą manipulatora. Mam zatem macierz M(100000,3), w której są współrzędne punktów. Każdy punkt w osobnym wierszu. Muszę te punkty wyświetlić na wykresie 3d.

Użyłem zatem takiego polecenia:

plot3(M(:,1),M(:,2),M(:,3))

jednak wykres jest mało czytelny.

Chciałbym uzyskać efekt taki jak tutaj:

http://www.mathworks.com/matlabcentral/fileexchange/9519

jednak nie potrafię przerobić tamtego kodu. Matlab nie zna w ogóle funkcji plot3k.

Mam wersję Matlab R2012a x64.

Proszę bardzo o pomoc i kilka słów wyjaśnienia jak to zrobić.

Pozdrawiam

Link do komentarza
Share on other sites

Witam.

Właśnie kurcze używałem surf i mesh i wychodzą mi jakieś głupoty. Zaraz wrzucę zdjęcia to będzie widać o co chodzi.

Problem wygląda tak:

Punkty sięgaja wzdłuż osi Z do wartości 293. Gdy używam funkcji plot3 to wykres wygląda ok. Ale gdy używam surf lub mesh to punkty na wykresie sięgają tylko do 262 wzdłuż osi Z. Prawdopodobnie źle używam funkcji surf i mesh, dlatego wrzucę kody i wykresy. Może mi pomożecie to rozwiązać.

Funkcji plot używam tak:

plot3(M(:,1),M(:,2),M(:,3),'r.')

A oto efekty:

Funkcji surf używam tak:

>> [X,Y]=meshgrid(-120:120);
>> x=M(:,1);
>> y=M(:,2);
>> z=M(:,3);
>> [xi,yi,zi]=griddata(x,y,z,X,Y);

Warning: Duplicate data points have been detected and removed - corresponding values have been averaged. 
> In griddata>linear at 205
 In griddata at 125 

>> w=interp2(xi,yi,zi,X,Y);
>> surf(X,Y,w)
>> shading interp

wyskakuje jekiś warning. Niebardzo wiem o co chodzi.

Efekty wyglądaja tak:

Funkcji mesh używam podobnie:

>> x=M(:,1);
>> y=M(:,2);
>> z=M(:,3);
>> [xi,yi,zi]=griddata(x,y,z,X,Y);

Warning: Duplicate data points have been detected and removed - corresponding values have been averaged. 
> In griddata>linear at 205
 In griddata at 125 

>> w=interp2(xi,yi,zi,X,Y);
>> mesh(X,Y,w)

A efekty przedstawiają się tak:

Link do komentarza
Share on other sites

Przypuszczam, że otrzymana zależność nie jest funkcją i dlatego plot3 działa, bo tam podajesz po prostu dowolną ilość punktów, a mesh i surf rysują funkcję tzn że dla danego x i y może być tylko jeden z. Stąd w warningu pisze że "podwójne" punkty zostały zastąpione jednym, którego wartość jest średnią z wartości dla tych współrzędnych. (Przecież przestrzeń robocza jest bryłą a nie powierzchnią)

edit: jeśli ma Ci to pomóc, to wrzucam link do funkcji plot3k

http://www.mathworks.com/matlabcentral/fileexchange/9519-color-coded-3d-scatterplot/content/plot3k.m

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Próbowałeś użyć funkcji scatter3?

http://www.mathworks.com/help/matlab/ref/scatter3.html

Rysuje ona po prostu punkt po punkcie, zawsze to jakieś rozwiązanie 😉

//Edit: a do zrobienia mapy kolorów na wykresie możesz użyć przecież funkcji caxes.

//Edit2: http://www.mathworks.com/support/solutions/en/data/1-DARKTD/index.html?product=SL&solution=1-DARKTD

//Edit3:

Jak to zwykle bywa, w skrypcie kodu dużo, a większość to obsługa błędów 😃

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.