Je fonction deux fichiers * .m avec deux fonctionsMatlab application du compilateur omet appel
fonction on est main(folder_path)
le second est calculate(file)
fonction main
appelle calculate
et écrit les résultats dans un fichier texte à l'aide Lorsque j'exécute le script dans Matlab, il écrit les bonnes valeurs à virgule flottante dans le fichier texte. Toutefois, lorsque j'utilise le compilateur d'applications et que vous créez un fichier * .exe, tous les résultats sont NaN
dans le fichier texte.
J'ai inséré quelques sorties de débogage et j'ai remarqué qu'aucune des sorties calculate
n'est imprimée lors de l'utilisation du fichier * .exe. Donc je suppose que la fonction calculate
n'est jamais appelée.
Y at-il une raison pour un tel comportement? Est-ce que je manque quelque chose?
% file main.m
function main(folder_path)
wildcard = '*.h5';
files = dir([folder_path , wildcard]);
% store results
[num_files, ~] = size(files);
vec_average = zeros(num_files);
for index = 1:size(files)
average = calculate([folder_path, files(index).name]);
% store in vector for matlab plotting
vec_average(index) = average;
end
% calculate avg value from all files
average = mean(vec_average);
% write to text files, for jenkins plotting
[file, msg] = fopen('average.property', 'w');
if file == -1
error(msg);
end
fprintf(file, 'YVALUE=%.5f\n', average(1));
fclose(file);
end
fichier suivant:
% file calculate.m
function [average] = calculate(file_path)
% read datasets - loop over h5 file
data = h5read(file_path ,'/datasets');
num_elements = data.num_elements;
elements = data.elements;
vec_y = [];
for index = 1:size(elements)
vec_y = [vec_y, elements(i)];
end
average = mean(vec_y);
end
Je ne sais pas quoi clarifier Il n'y a pas de message d'erreur et rien d'autre, ça fonctionne dans un sens et dans l'autre, ça ne fonctionne pas, est-ce que vous voulez voir le – user3932876
Je lis ce qui est là, mais la seule chose que je peux vous présenter est de travailler le code Matlab (raccourci) qui ne fonctionne pas après avoir utilisé le compilateur d'application – user3932876
Bien sûr, mais au moins maintenant nous pouvons l'essayer pour nous-mêmes, et voir aussi quelles fonctions sont contenues dans le code MATLAB, certaines fonctions ne t compiler correctement. Dans ce cas: je soupçonne que 'h5read' est en faute. Je ne suis pas familier avec le fonctionnement interne du compilateur, mais c'est la fonction qui n'est pas "basique" en tant que telle. – Adriaan