Je n'ai aucune idée de ce qui se passe ici. J'utilise R2006b. Y a-t-il une chance que quelqu'un qui utilise une version plus récente puisse faire un test pour voir s'il obtient le même comportement, avant que je ne remplisse un rapport de bogue ?
code : ( bug1.m
)
function bug1
S = struct('nothing',{},'something',{});
add_something(S, 'boing'); % does what I expect
add_something(S.something,'test'); % weird behavior
end
function add_something(X,str)
disp('X=');
disp(X);
disp('str=');
disp(str);
end
de la production :
>> bug1
X=
str=
boing
X=
test
str=
??? Input argument "str" is undefined.
Error in ==> bug1>add_something at 11
disp(str);
Error in ==> bug1 at 4
add_something(S.something,'test');
Il semble que le vide et le néant de la S.something
lui permet de déplacer les arguments d'un appel de fonction. Cela semble être un très mauvais comportement. A court terme, je veux trouver un moyen de contourner le problème (j'essaie de créer une fonction qui ajoute des éléments à un tableau de cellules initialement vide qui est membre d'une structure).
Edita:
Question corollaire : il n'y a donc aucun moyen de construire une struct
contenant des tableaux de cellules vides ?