Vorrei sapere se è possibile utilizzare un valore ":" come argomento di una funzione.passaggio di due punti come argomento di una funzione in matlab
Qualcosa di simile:
function y=func(x)
if x is a colon
do this
else
do that
end
è anche possibile passare l'opera chiave fine come argomento di una funzione, e anche 1: fine, 3: end-5, ecc ... Dubito che sia possibile, ma mi piacerebbe esserne sicuro.
Inoltre, viene visualizzato un errore strano quando passo "1: fine" come argomento di una funzione, non produce errori, ma all'interno della funzione non viene assegnato alcun argomento (nemmeno gli altri argomenti). Qualcuno sa cosa succede?
Non sono sicuro che sia effettivamente necessario farlo. Racconta un po 'di più cosa stai cercando di ottenere. Puoi certamente passare i due punti come una stringa 'if x ==": "...', ** fine ** può essere trovata usando [size] (http://www.mathworks.co.uk/help/techdoc /ref/size.html) e passati come numero. – oleksii
Sì, passarlo come una stringa sarebbe una buona soluzione ... Buona idea. – Oli
Questo è ciò che accade all'interno delle chiamate all'operatore sovraccarico '()': se chiamate 'x (:)', ':' arriva a subsref o subsasgn come stringa '':''. Quindi sembra ragionevole. Usa 'ischar (x) && isequal (x, ':')' invece di '==' però. Il '==' genererà errori sulle differenze di dimensioni e produrrà falsi positivi: '==' esegue la conversione del tipo implicito, quindi '58 == ':'' è vero. –