Bonjour

Lorsque j'execute Output=myfunc(inputname) en ligne de commande le calcul est effectue en 20s. Si j'evalue directement toutes les lignes de code de la fontion myfunc en ligne de commande j'obtiens 2s de temps de calcul ! L'argument inputname est une chaine de caracteres (par ex 'parameters') qui appelle un script .m dans lequel une structure Input est definie (dans parameters.m j'ai Input.param1=2; Input.param2=1; etc), cette structure est chargee localement et les variables de cette structure (param1, param2) sont utilises par les lignes de code de myscript.

Quelqu'un aurait-il une explication pour ce comportement bizarre ?
Le profiler done une repartition de temps de calcul similaire entre les deux versions, la seule difference est que chaque ligne de code prend 10 fois plus de temps.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
function Output=myfunc(inputname)
 
tic
 
eval(inputname);%loading script defining the Input structure (Input.param1=1 etc)
load_struc(Input); %a script to locally assign the structure (param1=1)
myscript;%some code lines and functions using Input structure variables param1,param2 ...
 
toc
 
end