Problema con MATLAB

Andrea902
Buongiorno a tutti!
Ho realizzato una funzione MATLAB e ho provato a testarla. Si tratta di una funzione che determina l'inversa di una matrice. Nonostante in molti testi vi sia la sintassi da me utilizzata, il programma mi restituisce un messaggio d'errore.
Riporto l'incipit della function:
function I = inversa(M)

[r,c]=size(M);
[...]

L'errore è:
??? Input argument "M" is undefined.

Error in ==> inversa at 5
[r,c]=size(M)

Dovrei quindi dichiarare a priori la matrice $M$ che dovrebbe essere una generica matrice (non necessariamente quadrata in quando dopo ho posto un if di controllo).
Come posso risolvere il problema?

Vi ringrazio in anticipo per le risposte.

Risposte
itpareid
ma in qualche punto del programma gli dici come è fatta $M$?

Andrea902
No. Fornisco solamente le istruzioni per calcolare l'inversa. D'altra parte ho letto che in MATLAB non è necessario dichiarare una matrice. A questo punto non mi torna quell'informazione!
In ogni caso $M$ deve essere una matrice di ordine qualsiasi immessa dall'utente...

itpareid
ok però per testarla dovrai dargli qualcosa "in pasto"...
in ogni caso questo può fare al caso tuo:
http://www.matrixlab-examples.com/matrix-inversion.html

Andrea902
Ti ringrazio per l'utile link!
Sì infatti dovevo dare una matrice, ma non ne ho il modo perché nel momento in cui salvo la funzione, mi compare il messaggio d'errore. Tutto ciò mi sorprende perché in molti libri funzioni simili vengono definite così senza dare informazioni aggiuntive sulla matrice...

Andrea902
Tutto risolto!
Sbagliavo la procedura: contemporaneamente salvavo e testavo la funzione senza aver prima immesso nella command window la matrice scelta! A quanto ho capito devo:
1. Salvare la funzione;
2. Immettere la matrice input;
3. Richiamare la funzione.
Giusto?
Purtroppo sono ancora alle prime armi!
Grazie per la collaborazione!

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