- Codice: Seleziona tutto
pic=51; %finitezza griglia
x=linspace(-2,2,pic); %|
y=linspace(-2,2,pic); %|(0)
[X,Y]=meshgrid(x,y); %|
Z=zeros(length(x),length(y)); %inizializzo
for i=1:pic %(1)
for j=1:pic
Z(i,j)=feval(@funzione,[x(i),y(j)]); %valuto la funzione
end
end
figure(1)
contour(Y,X,Z,30); %(2)
xlabel('x');
ylabel('y');
hold on
figure(2)
surfc(Y,X,Z); %(2')
xlabel('x');
ylabel('y');
Ho due problemi:
(1): vorrei togliere questo 'for' ma se metto qualcosa tipo
- Codice: Seleziona tutto
Z(:,:)=feval(funzione,[x(:),y(:)]);
mi da errore.
Ci sono metodi più veloci? Magari anche senza usare 'feval'...
(2) e (2'): Il codice per come l'ho scritto mi dà esattamente quello che vorrei, il problema è che per farlo funzionare ho dovuto invertire 'Y' e 'X' e non capisco il perchè.
(0): Non è un vero problema. Credo che quelle 3 righe di codice siano comprimibile in una, utilizzando bene il comando 'meshgrid', il problema è che faccio come ho sempre fatto non funziona, potrebbe essere per problemi di compatibilità con 'feval'?
Grazie.

