Di tutte le funzioni che hai scritto, l'unica che "funziona" è "
contatore" la quale ritorna, giustamente il valore "1" assegnato al campo "
conta" della struttura "self".
La funzione "
contatore" non ritorna (se questa era l'aspettativa) la struttura "self".
Affinchè la funzione "
contatore" ritorni la struttura "
self" dovrebbe essere dichiarata così:
function self=contatore()
Quanto alle altre funzioni:
function variabili()
- Non si capisce cosa dovrebbe fare
- è dichiarata in modo che non ritorno alcun valore (affinchè ritorni almeno un valore, dovrebbe essere definita in modo analogo a "
contatore")
- nella prima istruzione:
s=cellarray;
cellarray non è una variabile definita, non è una funzione (almeno non di MatLab), di conseguenza risulta "indefinito" e genera un messaggio di errore.
Per la creazione di cell arrays si può usare la funzione "
cell" di MatLab
- la seconda istruzione:
s.Contatore; genera un messaggio di errore dal momento che la struttura "
s" non è stata creata alla riga precedente; se anche lo fosse stata (e non lo è stata) il campo "Contatore" non sarebbe stato comunque definito
function out2=ex()
- nella prima istruzione:
out=prova21.contatore(); la struttura "
prova21" non è stata definita, questo genera un messaggio di errore inoltre, "
contatore" è una funzione e non si può assegnare una funzione ad una variabile (a meno che non si tratti dell'handle della funzione, ma non credo che fosse questo lo scopo).
- il resto delle istruzioni della funzione sono errate in quanto basate sulla struttura "
prova21" che (vedi punto precedente) non esiste
function exec()
Nella funzione, la struttura "
prova21" non è definita (così come non lo era nella funzione precedente) questo genera un messaggio di errore.
Affinchè una variabile (di qualunque tipo) sia visibile all'interno di una funzione deve essere passata come parametro o deve essere dichiarata "global"
Prima di procedere con altri tentativi di scrittura di funzioni, ti consiglio caldamente di leggere la guida "Getting Started" di MatLab per acquisire i fondamenti del linguaggio MatLab.
Puoi trovarla in Internet:
http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf
http://www.mathworks.com/academia/student_version/learnmatlab.pdf
(cerca quella corrispondente alla versione di MatLab che hai).
Inoltre, con il comando "doc" dalla Command Window si apre l'Help Browser di MatLab, al fondo della pagina principale trovi il link alla documentazione completa in formato ".pdf."; tra i tanti documenti dovresti trovare anche la guida "Getting Started".
Hope this helps.