Bonjour à tous.
J'ai un problème assez complexe à vous soumettre.
Je cherche à effectuer une sauvegarde sur un programme que j'ai fais, et je pensais donc stocker toutes les variables sous la forme d'un fichier.mat. Tout se passe plutôt bien, sauf dans un cas assez précis : lorsque qu'une fonction handle F=@(x) f(x) à été créée dans une fonction.
Petit exemple :
Voici une fonction qui génère un @
Et voici ce que je lance en commandefunction [ output_args ] = fun( input_args )
global f
a=2;
f=@(x) a*x
end
Enfin, voici l'erreur>> fun
f =
@(x) a*x
>> global f
>> f(1) %Test : Bien entendu, dans f est 'stocké' que a=2
ans =
2
>> save AA
>> clear all
>> load AA
Ce que je pense comprendre, c'est que lorsque l'on créer le @, le a est implicitement compris comme 2, alors que si l'on sauvegarde, le a est compris comme 'a'. A partir de là, je n'ai pas d'idée comment résoudre le problème.Warning: Could not find appropriate function on path loading function handle C:\MATLAB701\work\TESTS\fun.m>@(x) a*x
Je cherche donc comment passer outre, et enregistrer ces @. Une méthode sans utiliser de .mat me convient parfaitement.
Merci beaucoup
--
Oca, (oui le global c'est mal, mais pour l'exemple c'est plus simple)
edit: orth & politesses
Partager