Pages: [1]   Go Down
Print
Author Topic: metodo in matlab  (Read 2444 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
rox
Forumista
***
Offline Offline

Posts: 633


« on: 27-10-2009, 15:56:32 »

qualcuno mi sa dire se in matlab è possibile fare metodi come in java?se sì mi potreste spiegare come si fa?
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Aigor
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.184


"Il destino non è una catena, ma un volo."[A.B.]


« Reply #1 on: 27-10-2009, 16:34:40 »


function nome_funzione(n)
{
  ......
}

E poi salvi tutto in un file con nome nome_funzione.m


Logged

"Era d'altronde uno di quegli uomini che amano assistere alla propria vita, ritenendo impropria qualsiasi ambizione a viverla.
Si sarà notato che essi osservano il loro destino nel modo in cui, i più, sono soliti osservare una giornata di pioggia." - Seta,Baricco
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #2 on: 27-10-2009, 17:26:50 »

function cramer(a)
Huh? function cramer(a)
    |
Error: Function definitions are not
permitted at the prompt or in scripts
intendevi così??
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #3 on: 27-10-2009, 17:59:48 »

ho provato a fare un metodo scrivendolo nell'editor e poi salvando il file nella cartella di matlab ma appena lo eseguo mi accade questo
Code:
function cramer(a)
{
    [m,n]=size(a)-1;
    b=a(:,1:(n-1));
    f=det(b);
    x=b;
    x(:,1)=a(:,n);
    X=det(x)/det(b);
    y=b;
    y(:,2)=a(:,n);
    Y=det(y)/det(b);
    z=b;
    z(:,3)=a(:,n);
    Z=det(z)/det(b);
return [ x;y;z];
}
nella command window ho scritto questo
Code:
a =

     1     2     3     4
     5     6     7     8
     9     4     3     2

>> cramer(a);

e mi dà il seguente errore
Huh? Error: File: cramer.m Line: 3
Column: 10
The expression to the left of the
equals sign is not a valid target for
an assignment.

che significa?e come risolvo il problema??
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Aigor
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.184


"Il destino non è una catena, ma un volo."[A.B.]


« Reply #4 on: 27-10-2009, 20:22:46 »


Mi correggo, pardon !

function Parametri in uscita = Nomefunzione(Parametri in Ingresso)


Rimane come ho detto prima l'obbligo di salvare la funzione in un file Nomefunzione.m.

Inoltre non c'è bisogno del return come ha scritto rox ma basta la seguente :
Code:
function [X;Y;Z]=cramer(A) % le matrici hanno lettera maiuscola u.u
{
    [m,n]=size(A)-1;
    B=A(:,1:(n-1));
    f=det(B);
    x=B;
    x(:,1)=A(:,n);
    X=det(x)/det(B); %primo valore da tornare
    y=B;
    y(:,2)=A(:,n);
    Y=det(y)/det(B);  %secondo
    z=B;
    z(:,3)=a(:,n);
    Z=det(z)/det(b); %terzo..
}



Logged

"Era d'altronde uno di quegli uomini che amano assistere alla propria vita, ritenendo impropria qualsiasi ambizione a viverla.
Si sarà notato che essi osservano il loro destino nel modo in cui, i più, sono soliti osservare una giornata di pioggia." - Seta,Baricco
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #5 on: 27-10-2009, 21:18:34 »

Aigor ho corretto il codice come hai detto tu ma mi dà questo errore
Code:
??? Error: File: cramer.m Line: 1 Column: 12
Expression or statement is incorrect--possibly unbalanced (, {,
or [.

cosa devo fare??
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Filippo Stanco
Moderator
Apprendista Forumista
*****
Offline Offline

Gender: Male
Posts: 369



WWW
« Reply #6 on: 29-10-2009, 12:50:05 »

quel -1 vicino a size, è corretto?
Logged
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #7 on: 29-10-2009, 18:44:13 »

quel -1 vicino a size, è corretto?
giusto prof avevo sbagliato! evil
Ho cambiato il codice in questo modo
Code:
function [ X;Y;Z ] = Cramer( a )
%UNTITLED4 Summary of this function goes here
%   Detailed explanation goes here
[m,n]=size(a);
    b=a(:,1:(n-1));
    f=det(b);
    x=b;
    x(:,1)=a(:,n);
    X=det(x)/det(b);
    y=b;
    y(:,2)=a(:,n);
    Y=det(y)/det(b);
    z=b;
    z(:,3)=a(:,n);
    Z=det(z)/det(b);

end
e mi dà il seguente errore
Code:
??? Error: File: cramer.m Line: 1 Column: 13
Expression or statement is incorrect--possibly unbalanced (, {,
or [.

cosa sbaglio??non riesco proprio a capirloo testate
« Last Edit: 29-10-2009, 21:03:51 by rox » Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Filippo Stanco
Moderator
Apprendista Forumista
*****
Offline Offline

Gender: Male
Posts: 369



WWW
« Reply #8 on: 06-11-2009, 13:14:07 »

function [X,Y,Z]=cramer(A) % le matrici hanno lettera maiuscola u.u


[m,n]=size(A);
B=A(:,1:(n-1));
f=det(B);
x=B;
x(:,1)=A(:,n);
X=det(x)/det(B); %primo valore da tornare
y=B;
y(:,2)=A(:,n);
Y=det(y)/det(B);  %secondo
z=B;
z(:,3)=A(:,n);
Z=det(z)/det(B); %terzo..
Logged
Pages: [1]   Go Up
Print
Jump to: