[RISOLTO] Problema QtOctave funzione Plot

Installazione, configurazione e uso di programmi e strumenti.
Marci89
Prode Principiante
Messaggi: 36
Iscrizione: domenica 29 marzo 2009, 18:17

[RISOLTO] Problema QtOctave funzione Plot

Messaggio da Marci89 »

Gente, poco da dire, questo è l'm file:
---------------------------------------------------
x = input("Inserisci il valore di x ->");
if x = 1
y = 0;
end;
x = linspace(2,(-2));
plot(x,y);
----------------------------------------------------
con QtOctave ne grafico non viene visualizzato nulla
con Matlab si vede il grafico...... Why???  ??? ??? ??? ???
Ultima modifica di Marci89 il martedì 30 novembre 2010, 8:51, modificato 1 volta in totale.
Avatar utente
Elrond
Rampante Reduce
Rampante Reduce
Messaggi: 5018
Iscrizione: sabato 22 novembre 2008, 12:32
Contatti:

Re: Problema QtOctave funzione Plot

Messaggio da Elrond »

Mi sembra che x sia un vettore e y un numero, cosa dovrebbe graficare? Su Matlab cosa esce (inserendo quale valore alla x)?
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]
Marci89
Prode Principiante
Messaggi: 36
Iscrizione: domenica 29 marzo 2009, 18:17

Re: Problema QtOctave funzione Plot

Messaggio da Marci89 »

dovrebbe risultare il grafico della funzione a seconda del valore inserito nella x.
Avatar utente
Elrond
Rampante Reduce
Rampante Reduce
Messaggi: 5018
Iscrizione: sabato 22 novembre 2008, 12:32
Contatti:

Re: Problema QtOctave funzione Plot

Messaggio da Elrond »

Marci89 ha scritto: dovrebbe risultare il grafico della funzione a seconda del valore inserito nella x.
Ma quale funzione? Provo a spiegare il significato di questo breve script:

Codice: Seleziona tutto

x = input("Inserisci il valore di x ->");
Inserisci il valore di x (un numero immagino)

Codice: Seleziona tutto

if x <= 0
   y = -2;
Se il numero x è minore o uguale a x allora la variabile y vale -2 (ed è un numero)

Codice: Seleziona tutto

elseif 0<x && x<1
   y = -2 + 2*x;
altrimenti se x è compreso fra 0 e 1 la variabile y vale -2+2*x (esempio: x = 0.5 → y = -1) e y è sempre un numero (non un vettore)

Codice: Seleziona tutto

else x >= 1
   y = 0;
end;
altrimenti la variabile y è sempre un numero e vale 0.

Codice: Seleziona tutto

x = linspace(2,(-2));
Ridefinisci magicamente x come un vettore di 100 elementi da 2 a -2 (utilità ignota)

Codice: Seleziona tutto

plot(x,y);
chiedi di rappresentare y (un numero puro, non un vettore) in funzione di x (che con l'ultima istruzione è diventato un vettore). Cosa dovrebbe capire Octave dal tuo script (e soprattutto come fa Matlab a capire qualcosa)?
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]
Marci89
Prode Principiante
Messaggi: 36
Iscrizione: domenica 29 marzo 2009, 18:17

Re: Problema QtOctave funzione Plot

Messaggio da Marci89 »

praticamente y dovrebbe contenere la funzione da inserire
nel grafico dando alla x diversi valori.

es: se input x = 0 -> y = -2

il grafico risultante è una retta parallela a x che passa per y=-2
Avatar utente
Elrond
Rampante Reduce
Rampante Reduce
Messaggi: 5018
Iscrizione: sabato 22 novembre 2008, 12:32
Contatti:

Re: Problema QtOctave funzione Plot

Messaggio da Elrond »

Dai in octave il comando

Codice: Seleziona tutto

help plot
e otterrai:

Codice: Seleziona tutto

If more than one argument is given, they are interpreted as

          plot (Y, PROPERTY, VALUE, ...)

     or

          plot (X, Y, PROPERTY, VALUE, ...)

     or

          plot (X, Y, FMT, ...)

     and so on.  Any number of argument sets may appear.  The X and Y
     values are interpreted as follows:

        * If a single data argument is supplied, it is taken as the set
          of Y coordinates and the X coordinates are taken to be the
          indices of the elements, starting with 1.

        * If the X is a vector and Y is a matrix, then the columns (or
          rows) of Y are plotted versus X.  (using whichever
          combination matches, with columns tried first.)

        * If the X is a matrix and Y is a vector, Y is plotted versus
          the columns (or rows) of X.  (using whichever combination
          matches, with columns tried first.)

        * If both arguments are vectors, the elements of Y are plotted
          versus the elements of X.

        * If both arguments are matrices, the columns of Y are plotted
          versus the columns of X.  In this case, both matrices must
          have the same number of rows and columns and no attempt is
          made to transpose the arguments to make the number of rows
          match.

          If both arguments are scalars, a single point is plotted.
la funzione plot non produce sostanzialmente nulla se hai uno scalare (Y) contro un vettore (X), o al massimo un punto (ma non si vede bene nel grafico, non sono sicuro che ci sia quel punto). Lo script è impostato male, così dovrebbe funzionare (anche se non sono sicuro su cosa dovrebbe succedere nel caso 0<x && x<1):

Codice: Seleziona tutto

x = input("Inserisci il valore di x ->");
t = linspace(2,(-2));
if x <= 0
   y = -2*ones(1,100);
elseif 0<x && x<1
   y = -2 + 2*t;
else x >= 1
   y = zeros(1,100);
end;
plot(t,y)
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]
Marci89
Prode Principiante
Messaggi: 36
Iscrizione: domenica 29 marzo 2009, 18:17

Re: Problema QtOctave funzione Plot

Messaggio da Marci89 »

Funziona!!!  ;D ;D ;D
grazie mille!!!
Scrivi risposta

Ritorna a “Applicazioni”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti