Puzzel Puzzels
Gebruikersavatar
Arie Bombarie
Artikelen: 0
Berichten: 682
Lid geworden op: zo 03 sep 2006, 15:51

Matlab: 3D plot van scattered data

Goedendag,

Ik heb in Matlab een dataset verkregen bestaande uit X, Y en Z coördinaten. De X en Y datapunten vormen het domein, en Z de bijbehorende functiewaarden.

Dit is de dataset:
wsf1
(80.39 KiB) 162 keer gedownload
Als ik een plot maak in Matlab aan de hand van de volgende code:

Code: Selecteer alles


[qx,qy] = meshgrid(linspace(min(X),max(X),100),linspace(min(Y),max(Y),100);

F = TriScatteredInterp(X,Y,Z);

qz = F(qx,qy);

surf(qx,qy,qz,'EdgeColor','none')

camlight left
Is dit het resultaat:

Afbeelding

Deze plot ziet er prima uit.

Echter, het feitelijke domein van de functie is een driehoek, met hoekpunten:

Code: Selecteer alles


X	 Y

0.0000	0.7853

-0.5236  -0.1745

0.5236   -0.1745

Ik wil dus alleen de functie plotten over dit domein.

Ik heb daarom alle datapunten gefilterd, met als resultaat dat alleen de X,Y data (inclusief bijbehorende Z waarde) overblijft die binnen dit domein ligt.

Het resultaat is de volgende dataset:
wsf2
(41.48 KiB) 160 keer gedownload
Als ik nu deze dataset plot op een zelfde manier, is dit het resultaat:

Afbeelding

Nu is het probleem dat deze plot er erg onzuiver uitziet aan de twee randen van het domein. Graag wil ik dat de grafiek er op de randen ook goed uit komt te zien.

Ik kan overigens nieuwe X, Y, Z data aanmaken, mocht dit nodig zijn...

Iemand een idee?

Alvast bedankt!
Help WSF met het vouwen van eiwitten en zo ziekten als kanker en dergelijke te bestrijden in de vrije tijd van je chip:

http://sciencetalk.nl/forum/index.ph ... opic=59270

ads

Steun Sciencetalk Papierversnipperaar - 13L - 8 A4 vellen - Creditcard Vernietiger - Zwart - Vivid Green

Papierversnipperaar - 13L - 8 A4 vellen - Creditcard Vernietiger - Zwart - Vivid Green

Bekijk product

Steun Sciencetalk Western Digital Elements Portable - Externe Harde Schijf - 4 TB

Western Digital Elements Portable - Externe Harde Schijf - 4 TB

Bekijk product

Steun Sciencetalk Epson EcoTank ET-2860 - All-in-One Inkttank Printer- Zwart

Epson EcoTank ET-2860 - All-in-One Inkttank Printer- Zwart

Bekijk product

Gebruikersavatar
physicalattraction
Moderator
Artikelen: 0
Berichten: 4.254
Lid geworden op: do 30 mar 2006, 15:37

Re: Matlab: 3D plot van scattered data

Persoonlijk zou ik zelf geen 3D plot maken, maar een 2D kleurenplot (imagesc), maar dat is je vraag hier niet.

Ik neem aan dat je het over die kartelrandjes hebt? Heb je al andere plot functies geprobeerd? Behalve surf, heb je ook iets als mesh, plot3 en nog andere plotfuncties. Hier staat een lijstje met alle plot functies. Misschien kun je hier eens mee gaan spelen om te kijken of dit je probleem oplost?

ads

Steun Sciencetalk Canon PIXMA TS3750i - All-In-One Inkjetprinter - Zwart

Canon PIXMA TS3750i - All-In-One Inkjetprinter - Zwart

Bekijk product

Steun Sciencetalk Logitech M220 Silent - Draadloze Muis - Wit

Logitech M220 Silent - Draadloze Muis - Wit

Bekijk product

Steun Sciencetalk Apple iPad A16 (2025) - 11 inch - Wi-Fi - 128GB - Pink - 11e generatie

Apple iPad A16 (2025) - 11 inch - Wi-Fi - 128GB - Pink - 11e generatie

Bekijk product

Scispace Scispace

Scispace is dé ai voor wetenschappers en onderzoekers. Ga naar SciSpace en profiteer van één van de beste ai's.

Scispace

Gebruikersavatar
Arie Bombarie
Artikelen: 0
Berichten: 682
Lid geworden op: zo 03 sep 2006, 15:51

Re: Matlab: 3D plot van scattered data

Excuses voor mijn late reactie, om de een of andere reden heb ik geen update ontvangen van dit topic.

Inmiddels heb ik de fout gevonden, ik had eerst iets als:

Code: Selecteer alles


[qx,qy] = meshgrid(linspace(min(X),max(X),100),linspace(min(Y),max(Y)),100);

Echter moet dit uiteraard zijn:

Code: Selecteer alles


[qx,qy] = meshgrid(linspace(min(X),max(X),100),linspace(min(Y),max(Y),100));

Toen ik het getal 100 in bijvoorbeeld 500 veranderde, werd de y resolutie dus niet verhoogd in de oude situatie, wat er voor zorgde dat de kartelrand niet verdween.

Helaas was de oude code wel feitelijk correct (maar deed dus niet wat ik wilde), en werd er dus geen foutmelding weergegeven.

Ik ben er in ieder geval uit :) .
Help WSF met het vouwen van eiwitten en zo ziekten als kanker en dergelijke te bestrijden in de vrije tijd van je chip:

http://sciencetalk.nl/forum/index.ph ... opic=59270

Plaats een reactie

Je mail wordt niet openbaar getoond. Het wordt enkel gebruik voor contact of notificatie vanuit het beheer.

🗨️ Wat vind jij? Stel direct je vraag of geef je mening – zonder registratie. Je reactie zet het topic weer bovenaan bij 'Laatste posts' en trekt snel nieuwe reacties aan🔥. Mocht je als vaste bezoeker willen reageren, dan kun je je ook registreren.

Bevestig dat je geen robot bent door de volgende vragen te beantwoorden.

Noor heeft 10 knikkers. Ze verliest er 4 in het gras. Hoeveel heeft ze er nog?

Antwoord: (vul een getal in)

Er zitten 5 vogels op een hek. Twee vliegen weg. Hoeveel blijven er zitten?

Antwoord: (vul een getal in)

Terug naar “Informatica en programmeren”

Sciencetalk: Leer, deel of groei. Volg of geef een cursus op Sciencetalk!