Come mai questo errore in Matlab?

FraSB83
funzione= 1/sqrt(2*pi) * exp(-(x-0.7)^2/(2*0.25))
??? Error using ==> mpower
Matrix must be square.

Risposte
.: Fix You :.1
io l'avrei scritta così:

1/sqrt(2*pi)*exp(-(x-0.7).^2./(2*0.25))

con octave è ok

dovrebbe essere quello che volevi fare no? $1/sqrt(2*pi)*e^(-(x-0.7)^2/(2*0.25))$

dissonance
@FraSB83: io ho provato a dare in input il comando come l'hai battuto tu e non dà errore, probabilmente avevi definito $x$ come una matrice non quadrata in precedenza.

FraSB83
Come faccio a togliere il valore definito precedentemente a x?

FraSB83
ok, ho fatto clear... ma come faccio a definire x? Cioè mi è stata data una funzione (quella soprascritta) e devo trovare la sua distribuzione normare (in matlab mormpdf)... ma non conosco x!

Sk_Anonymous
Usa il comando

clear


Questo cancella tutte le variabili che hai allocato nella sessione corrente.

FraSB83
Mi deve venire una gaussiana! Come faccio? Perchè mi dice di definire x? Non conosco il vaolre di x!!! help please

FraSB83
Deve venire una gaussiana... ho provato a riscrivere la funzione e continua a dirmi che la matrice delle essere quadrata!!! uff... :-(
Ho impostato x=[0:0.5:3]... ho capito che è un vettore ma a me non serve una quadrata! Boh, non capisco
Attendo lumi per favore!!! Mi serve per domani... please, help

_luca.barletta
Ad es puoi scrivere

x = [-10:1e-2:10];
y = 1/sqrt(2*pi*0.25)*exp(-(x-0.7).^2./(2*0.25));
figure, plot(x,y)

FraSB83
Ho scritto così

Codice:
x=[-10:1e-2:10];
>> f=1/(sqrt(2*pi)*0.5)*exp(-(1/2*(x-1.75)/0.5)^2)

Ma niente da fare! Continua a darmi erorre sulla x!
NB: la funzione è giusta questa!

_luca.barletta
FraSB83
ti ho già scritto la soluzione, più di così non posso fare. Le due formule sono uguali, basta sostituire a 0.7 il valore 1.75.

FraSB83
Ho capito ma se a me dà errore non so cosa fare neanch'io. Grazie lo stesso.

_luca.barletta
prendi il mio codice, fai copia e incolla e il gioco è fatto. non vedo il problema. Il tuo errore sta nel fatto che metti l'elevamento a potenza come ^ invece di .^

FraSB83
Perfetto, grazie!
Un giorno tenterò di capire come mai dà errore riguardao la matrice quaratica e non sulla scrittura della funzione! :-) grazie e scusa!

FraSB83
Ah, una cosa... mi puoi spiegare per favore, cosa significa 1e-2 in x? grazie

_luca.barletta
è la notazione mantissa-esponente: 1e-2 corrisponde a 1*10^(-2). 4e-3 corrisponde a 4*10^(-3)

FraSB83
Sono sempre qui:
ne ho due di funzioni uguali con m diverso e sigma diverso. Devo graficare le due funzioni in formato 3D.
Ho scritto questo codice:

>> x = [-10:1e-2:10];
>> y = 1/sqrt(2*pi*0.5)*exp(-(x-1.75).^2./(2*0.5));
>> x1 = [1100:8e-2:1300];
>> y1 = 1/sqrt(2*pi*3)*exp(-(x-1200).^2./(2*3));
>> mesh(y,y1);
Warning: Z must not be a scalar or vector, not rendering surface.
Warning: Z must not be a scalar or vector, not rendering surface.

Dov'è l'errore per favore?
grazie

_luca.barletta
formato 3D? queste sono funzioni di una variabile

FraSB83
Prima infatti devo fare il mesh delle due y, poi moltiplicarle per ottenere z e poi fare mesh (y,y1,z)... almeno credo... purtroppo mi sto arrangiando perchè il prof ci ha detto di provarci da soli. Cmq devo rappresentare in 3D le due fnz e il loro prodotto.

_luca.barletta
puoi plottare in 3D il prodotto delle 2 ddp, in modo da ottenere la ddp congiunta delle due variabili gaussiane indipendenti. devi usare la funzione meshgrid per creare la griglia 2D su cui calcolare la funzione. Ad esempio per plottare un paraboloide dovresti fare
x=[-1:1e-2:1];
y=[-1:1e-2:1];
[X Y]=meshgrid(x,y);
Z = X.^2+Y.^2;
mesh(Z)

adattalo al tuo caso

FraSB83
OK grazie... ho provato ad applicarlo al mio caso:

>> x = [-10:1e-2:10];
>> y = [1100:8e-2:1300];
>> [x y]=meshgrid(x,y);
>> Z = (1/sqrt(2*pi*0.5)*exp(-(x-1.75).^2./(2*0.5))) * (1/sqrt(2*pi*3)*exp(-(y-1200).^2./(2*3)));
??? Error using ==> mtimes
Inner matrix dimensions must agree.

Purtroppo erroe... quando verrà questo esercizio mi ubriacherò! :-)
help...

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.