Disegnare grafico 3D con 3 vettori

di il
17 risposte

Disegnare grafico 3D con 3 vettori

Ciao a tutti, vorrei fare una domanda per poter ottenere una conferma o un nuovo suggerimento.

Io ho tre vettori all'interno dei quali sono memorizzati gli elementi.
Ad esempio

x=[ x1 x2 x3 .. xn]
y=[ y1 y2 y3 ... yn]
z=[ z1 z2 z3 ... zn]

I vettori hanno tutti la stessa dimensione.
Vorrei ricavare un grafico di superficie 3D che disegni gli elementi dei vettori.

Ho provato con plot3(x,y,z) ma ovviamente il grafico è lineare.

Inoltre ho provato anche con mesh ma richiede come z una matrice. Come dovrei realizzare la matrice z?
Oppure potrei inserire i vettori in una matrice e usare il comando mesh?
Ad esempio

A= [x1 x2 x3 .. xn; y1 y2 y3 ... yn; z1 z2 z3 ... zn]
mesh(A)

Quali delle seguenti soluzioni è corretta? Posso realizzare il grafico in modo migliore?

Grazie a tutti

17 Risposte

  • Re: Disegnare grafico 3D con 3 vettori

    Per usare mesh (o surf) devi creare una specie di griglia.
    X, Y, Z devono essere 3 matrici.
    Per creare la griglia devi usare la funzione meshgrid, non puoi semplicemente creare una matrice con i tre vettori.
  • Re: Disegnare grafico 3D con 3 vettori

    Per grafico di superfice intendi qualcosa di simile all'immagine allegata?
    In questo caso ti serve il comando surf ma in input mi pare che voglia anche una matrice
    Allegati:
    9724_b2cf4c3101e77122434efc351a4d8862.jpg
    9724_b2cf4c3101e77122434efc351a4d8862.jpg
  • Re: Disegnare grafico 3D con 3 vettori

    La differenza tra il surf e il mesh è che nel mesh disegna solo una griglia sulla superficie, mentre il surf fa una superficie piena.
    In genere, soprattutto nel caso di matrici di grandi dimensioni è meglio usare il mesh perché è più "leggero" (ad esempio, quando ruoti il grafico il surf potrebbe andare a rilento perché ha troppi dati da processare).
  • Re: Disegnare grafico 3D con 3 vettori

    Prendo nota.

    P.S.: ho visto la tua risposto dopo aver postato la mia, altrimenti non mi sarei permesso...
  • Re: Disegnare grafico 3D con 3 vettori

    Grazie per le risposte.
    Mi spiego meglio.
    Io ho tre vettori che contengono i risultati di tre formule diverse. Vorrei fare un grafico che permetta di disegnare i risultati.
    Ho letto che per usare mesh e surf ci voglio due vettori (ad esempio x e y) e una matrice (ad esempio z).
    Io di z però ho un vettore. Esiste un modo per trasformarla in matrice e quindi poter utilizzare nel modo corretto il comando oppure vi sono altre possibilità utilizzando i tre vettori x, y ,z?
    Oppure potrei inserire i vettori in una matrice e usare il comando mesh?

    Come esempi sull'utilizzo di mesh e surf trovo la rappresentazione di funzioni del tipo z=f(x,y) che non è però il mio caso.
    Io ho bisogno di gradicare i tre vettori x,y,z.

    Grazie ancora
  • Re: Disegnare grafico 3D con 3 vettori

    Sono un pò confuso...
    le tre formule sono indipendenti l'una dall'altra?
    Perchè non fai 3 plot sovrapposti usando una cosa tipo:
    
    plot(...)
    hol on
    plot(...)
    hold on
    plot(...)
    
    oppure credo che puoi anche scrivere

    hold all

    e poi le istruzioni per i plot.

    Comunque se spieghi da dove vengono questi dati capiamo meglio cosa devi fare...
  • Re: Disegnare grafico 3D con 3 vettori

    Guarda qui http://www.mathworks.it/support/tech-notes/1200/1212.html
    section 3
  • Re: Disegnare grafico 3D con 3 vettori

    Vi porto un esempio.
    Per il mio progetto io assegno:
    x= deviazione standard
    z= distanza
    In base a delle simulazioni, che non effettuo in matlab ma in un framework per la simulazione di reti, ottengo y=delay medio.

    Faccio svariate simulazioni variando deviazione standard e distanza ottenendo delay sempre diversi.
    Questi valori vengono poi memorizzati e io vorrei disegnarli in un grafico a tre variabili per visualizzare l'andamento del delay medio in base alla variazione di x e z.
    E' la prima volta che mi cimento in questo tipo di grafici e quindi vi chiedo una mano.
    Grazie
  • Re: Disegnare grafico 3D con 3 vettori

    Non puoi fare un grafico 2D con barre di errore visto che hai la deviazione standard?
    se come soluzione ti piace guarda qua: http://www.mathworks.it/help/techdoc/ref/errorbar.htm
  • Re: Disegnare grafico 3D con 3 vettori

    Grazie ma non è quello che sto cercando.
    Provo a seguire il suggerimento del link di giug
  • Re: Disegnare grafico 3D con 3 vettori

    Meglio, segui lui non me che sono un esordiente
  • Re: Disegnare grafico 3D con 3 vettori

    No figurati, anzi grazie per aver risposto.
    Semplicemente non è ciò che voglio realizzare.
  • Re: Disegnare grafico 3D con 3 vettori

    mirk83 ha scritto:


    no figurati, anzi grazie per aver risposto.
    Semplicemente non è ciò che voglio realizzare.
    Ma non ci sono rimasto male.
    Facevo una costatazione obiettiva, non sono pratico di MatLab, sto imparando e ci lavoro da poco.
  • Re: Disegnare grafico 3D con 3 vettori

    Prova con il link, mi sembra che faccia proprio quello che stai chiedendo... (section 3)
    Se poi hai qualche problema chiedi pure.

    1keenan ha scritto:


    meglio, segui lui non me che sono un esordiente
    Sono una femminuccia... dammi pure del "lei"
Devi accedere o registrarti per scrivere nel forum
17 risposte