1 van 1

Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: ma 21 nov 2011, 19:34
door Axioma91
Ik ben op zoek naar een methode in Matlab om een matrix/vector dataset in een vlak te plotten. Dat lukt en matlab geeft alle puntjes met bijbehorende intensiteit weer met een stam. Alleen ziet dat er niet uit/kun je er slecht dingen uit aflezen.

Het gaat om de volgende typen data

plaats: (x,y) en intensiteit: (z).

Ik wil dat matlab interpoleert (lineariseert) en een mooi vlak maakt (2d), waarin de kleur een maat is voor de intensiteit. Maar na lang proberen lijkt me dat niet goed te lukken. (Ik kan wel een dergelijk vlak tekenen, maar dan verschijnen er driehoekjes en witte stukken tussen te verbindingslijnen van punten (hij interpoleert in de volgorde van de data(punten)-input, dat is niet de bedoeling....)

Zou iemand me hiermee kunnen helpen? Negeer evt. de laatste zin van vorige alinea - die poging was vrij waardeloos.

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: ma 21 nov 2011, 21:29
door Xenion
Kan je die data niet weergeven als afbeelding dan? Dus voor elke (x,y) in de matrix heb je een intensiteit z?

Kijk eens in de help naar 'imshow' of naar 'image', bij imshow kan je geloof ik de x en y assen specificeren.

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: ma 21 nov 2011, 21:58
door EvilBro
Is dit wat je zoekt? klik me

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: ma 21 nov 2011, 22:00
door Xenion
Is dit wat je zoekt? klik me


Daar dacht ik ook eerst aan, maar hij wil juist geen surface, hij wil dat de hoogte gegeven wordt door een intensiteit in 2D.

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: ma 21 nov 2011, 22:08
door Axioma91
Hm ik heb hier thuis geen matlab, dat zal ik morgen even moeten proberen. Het punt is wel dat we ongeveer 10 datapunten per plot hebben. Dat lijkt me ergens niet helemaal afbeeldingswaardig (maar als daarover geinterpoleerd kan worden, dan wel). Ik zal morgen even kijken - bedankt!

EDIT (evilBro): Ja! Iets dergelijks om de intensiteit aan de geven is prima! Misschien toch even een cursus matlab doen - deze functies zien er redelijk standaard uit. Nou goed - ik ga morgen aan de slag

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: ma 21 nov 2011, 22:20
door Xenion
Met slechts 10 datapunten zal er altijd geïnterpoleerd moeten worden, ook voor een surf-plot.

Om het in 2D te krijgen helpt het misschien als je eerst in 3D interpoleert met interp3 en dan naar een afbeelding schrijft.

Als je een dataset geeft wil ik er ook wel eens aan prutsen.

Wat is de context juist, wat voor data wil je laten zien? Want het is niet altijd relevant van de interpoleren.

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: ma 21 nov 2011, 22:46
door Axioma91
Xenion schreef:Met slechts 10 datapunten zal er altijd geïnterpoleerd moeten worden, ook voor een surf-plot.

Om het in 2D te krijgen helpt het misschien als je eerst in 3D interpoleert met interp3 en dan naar een afbeelding schrijft.

Als je een dataset geeft wil ik er ook wel eens aan prutsen.

Wat is de context juist, wat voor data wil je laten zien? Want het is niet altijd relevant van de interpoleren.
De data die ik wil laten zien: de intensiteit van geluid op een afstand r van de speaker onder verschillende hoeken. Dat voor 3 frequenties tussen 30 - 10^5Hz (dacht ik) (we hebben data van frequenties in ongeveer 50 stapjes over dat interval). We selecteren een representatieve hoge, lage en midden frequentie die we apart plotten.

Dat in verschillende ruimten... Ik zal morgen en overmorgen proberen een degelijk 3D geinterpoleerd plaatje(s) te maken (omwille van het komen te beheersen van matlab - dat is ook altijd handig :) )

Het zou overigens helemaal mooi zijn als alle frequenties (dus die 50 datasetjes) in een 3d figuur afgebeeld konden worden. Bijvoorbeeld de plaats (x,y) en de frequentie (z) met kleuren als intensiteitsmaat. Geen idee of zoiets mogelijk is (in maple heb je opties om vlakken doorschijnend te maken, maar dat wordt hier wat lastig). Misschien een dwarsdoorsnede onder een bepaalde hoek - dat zou niet gek zijn.

Nou goed, dat komt later wel (of niet) - eerst een eenvoudig plaatje maken. Dan zet ik morgen meteen de data in m'n mail.

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: ma 21 nov 2011, 22:51
door Bart
contourf

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: di 22 nov 2011, 14:35
door DePurpereWolf
contourf lijkt me hier niet helemaal geschikt voor. Imagesc dan weer wel.

Een 4D grafirk (x en Y, intensiteit en frequentie. Is niet echt een goed idee. Meer omvangrijke grafieken maken het niet altijd even duidelijker.

Gebruik dus Meshgrid van EvilBro's link maar in plaats van het plotten met surf of mesh kun je imagesc gebruiken.

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: wo 23 nov 2011, 14:17
door Axioma91
Bedankt allemaal, het is gelukt met mesh en surf plots!

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: wo 23 nov 2011, 18:11
door Xenion
Kan je mss ook een resultaat posten? Kzou willen zien wat het uiteindelijk geworden is ;)

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: wo 23 nov 2011, 18:57
door Axioma91
Dit plaatje is niet een resultaat van de metingen (een verkeerde X-matrix ingevoerd (die moest ik zelf maken, omdat de grid niet uit "vierkantjes" bestaat)) - dit ziet er dus wat rommelig/ abstract uit. Qua structuur lijkt het er overigens wel op..

Om dit er wat acceptabeler uit te laten zien, ga ik een best fit in origin vinden (het kan vast ook in matlab) en met de gevonden functies een nieuw plaatje plotten. Dat ziet er dan hopelijk iets differentieerbaarder uit in de lengterichting.

Dat is wat omslachtig eigenlijk - is er niet eenzelfde soort mesh functie die een best fit probeert te vinden in beide richtingen? Of gaat dat ook allemaal handmatig??
plaatje
plaatje 833 keer bekeken

Re: Matlab 2d continu gekleurd figuur met discrete data

Geplaatst: do 24 nov 2011, 11:48
door DePurpereWolf