Pagina 1 di 1
[RISOLTO] Problema QtOctave funzione Plot
Inviato: mercoledì 17 novembre 2010, 9:37
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??? ??? ??? ??? ???
Re: Problema QtOctave funzione Plot
Inviato: mercoledì 17 novembre 2010, 15:33
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)?
Re: Problema QtOctave funzione Plot
Inviato: giovedì 18 novembre 2010, 14:53
da Marci89
dovrebbe risultare il grafico della funzione a seconda del valore inserito nella x.
Re: Problema QtOctave funzione Plot
Inviato: giovedì 18 novembre 2010, 17:52
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:
Inserisci il valore di x (un numero immagino)
Se il numero x è minore o uguale a x allora la variabile y vale -2 (ed è un numero)
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)
altrimenti la variabile y è sempre un numero e vale 0.
Ridefinisci magicamente x come un vettore di 100 elementi da 2 a -2 (utilità ignota)
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)?
Re: Problema QtOctave funzione Plot
Inviato: lunedì 22 novembre 2010, 15:13
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
Re: Problema QtOctave funzione Plot
Inviato: lunedì 22 novembre 2010, 15:25
da Elrond
Dai in octave il comando
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)
Re: Problema QtOctave funzione Plot
Inviato: martedì 30 novembre 2010, 8:51
da Marci89
Funziona!!!

grazie mille!!!