J'ai un cellarray
dont les valeurs sont utilisées pour initialiser les structures correspondantes.Affectation de valeur dynamique dans Matlab
cellarr = {'NI' ; 'EQ' ; 'TA' } ;
defstr = struct('Raw', '-1') ;
for i = 1:size(cellarr,1)
eval([cellarr{i,1} '= defstr;']) %Yes,I know eval is bad!Any other approach?
end
Les nouvelles valeurs sont ensuite remplies dans le champ Raw
.
dataCell = [] ;
for i=1:size(cellarr,1)
rawCell = [cellarr{i} '.Raw'] ;
dataCell = strcat(dataCell, ', ', rawCell) ;
end
dataCell(1) = [] ;
DESIRED STATEMENT NOW --> [NI.Raw,Eq.Raw,TA.Raw] = filldata()
function[a1,a2,a3] = filldata(), a1 = 1 ; a2 = 2 ; a3 = 3 ; end
Je ne suis pas en mesure d'exécuter le desired statement
, même en utilisant eval
. J'apprécierai votre aide. filldata
le nombre de sortie correspond à celui de LHS de desired statement
. Merci.
Connaissez-vous [les références de structure dynamique] (http://blogs.mathworks.com/loren/2005/12/13/use-dynamic-field-references/)? Souvent, leur utilisation judicieuse résout le besoin d '«évaluer» - et ils sont assez rapides. –
@Reve_etrange merci! – Maddy