Problème de sauvegarde de function handle
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 @
Citation:
function [ output_args ] = fun( input_args )
global f
a=2;
f=@(x) a*x
end
Et voici ce que je lance en commande
Citation:
>> 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
Enfin, voici l'erreur
Citation:
Warning: Could not find appropriate function on path loading function handle C:\MATLAB701\work\TESTS\fun.m>@(x) a*x
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.
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