Non c'è una risposta veramente buona al momento attuale. Se si desidera semplicemente definire una variabile semplice che viene visualizzata nell'area di lavoro, quindi
f00 = 88;
ovviamente funziona. Ma questo non si vedrà all'interno di altre funzioni. Quindi potresti definirlo come una variabile globale, ma poi devi dichiarare ogni variabile come globale all'interno di ogni funzione che ne avrà bisogno. Per me questo sembra un kludge. IMHO leggermente migliore, consiste nel definire una funzione m-file per foo.
function returnvalue = f00
% returns the scalar value of 88
returnvalue = 88;
(Si noti che ho una riga di commento qui. Questo viene restituito quando si chiama aiuto foo, così, lookfor vedrò che la linea troppo. Si raccomanda Meglio aiuto di questo, ma mi sento pigro in questo momento .)
Finché foo.m è nel percorso di ricerca, questo restituisce sempre il valore 88. Si noti che non ho incluso argomenti. Ma potresti essere più creativo, e forse permettere un argomento di dimensioni, in modo che foo (N) si comporti come fanno gli zeri, gli uni e gli occhi. Questa è la cosa bella dell'utilizzo di una funzione qui. Può fare esattamente come desideri. Quindi forse ...
function returnvalue = f00(varargin)
% returns the scalar value of 88, or replicated elements if a size is supplied
% usage: foo
% usage: foo(N)
% usage: foo(N1,N2,...)
%
% arguments:
% N - a scalar or vector that denotes the number
% of repeated elements (all 88) to be generated
%
% returnvalue - a scalar (or vector/array) of
% size indicated by N.
%
% see also: ones, zeros, eye
if (nargin == 0)
% no arguments, so return a scalar 88
returnvalue = 88;
elseif (nargin == 1) && isscalar(varargin{1})
% be consistent with ones, zeros, eye, etc.
returnvalue = repmat(88,[varargin{1},varargin{1}]);
elseif (nargin == 1)
% the size is a vector already
if isvector(varargin{1})
returnvalue = repmat(88,varargin{1});
else
error('FOO:impropersize','Size argument cannot be a general array')
end
elseif
% nargin must have been more than 1
returnvalue = repmat(88,cell2mat(varargin));
end
Probabilmente potrei fare un po 'meglio l'errore di controllo sopra, ma dovresti avere l'idea generale.
questioni correlate: http://stackoverflow.com/questions/1773850/constants-in-matlab e http://stackoverflow.com/questions/1389042/how-do-i-create-enumerated -types-in-matlab – Amro
Mi dispiace, la mia risposta è stata spazzatura. L'ho cancellato. – Peter
Divertente dovresti dirlo, Peter, ho finito per farlo con i globals. –