coder.target
Déterminer si la cible de la génération de code est celle spécifiée
Syntaxe
Description
renvoie la valeur « true » (1) si la cible de la génération de code est bien tf = coder.target(target)target. Sinon, il renvoie la valeur « false » (0).
Si vous générez du code pour des classes MATLAB®, MATLAB calcule leurs valeurs initiales au moment de leur chargement avant la génération du code. Si vous utilisez coder.target dans l’initialisation des propriétés des classes MATLAB, coder.target('MATLAB') renvoie « true ».
Exemples
Paramétrez une fonction MATLAB pour qu’elle fonctionne dans MATLAB ou dans le code généré. Quand la fonction s’exécute dans MATLAB, elle appelle la fonction MATLAB myabsval. En revanche, le code généré appelle une fonction de bibliothèque C myabsval.
Écrivez une fonction MATLAB myabsval.
function y = myabsval(u) %#codegen y = abs(u);
Générez une bibliothèque C statique pour myabsval en utilisant l’option -args pour spécifier la taille, le type et la complexité du paramètre en entrée.
codegen -config:lib myabsval -args {0.0}
codegen crée le fichier de bibliothèque myabsval.lib et le fichier d’en-tête myabsval.h dans le dossier \codegen\lib\myabsval. (L’extension du fichier de bibliothèque peut varier selon la plateforme.) Elle génère les fonctions myabsval_initialize et myabsval_terminate dans ce même dossier.Écrivez une fonction MATLAB pour appeler la fonction de bibliothèque C générée avec coder.ceval.
function y = callmyabsval(y) %#codegen % Check the target. Do not use coder.ceval if callmyabsval is % executing in MATLAB if coder.target('MATLAB') % Executing in MATLAB, call function myabsval y = myabsval(y); else % add the required include statements to generated function code coder.updateBuildInfo('addIncludePaths','$(START_DIR)\codegen\lib\myabsval'); coder.cinclude('myabsval_initialize.h'); coder.cinclude('myabsval.h'); coder.cinclude('myabsval_terminate.h'); % Executing in the generated code. % Call the initialize function before calling the % C function for the first time coder.ceval('myabsval_initialize'); % Call the generated C library function myabsval y = coder.ceval('myabsval',y); % Call the terminate function after % calling the C function for the last time coder.ceval('myabsval_terminate'); end
Générez la fonction MEX callmyabsval_mex. Spécifiez le fichier de bibliothèque généré à la ligne de commande.
codegen -config:mex callmyabsval codegen\lib\myabsval\myabsval.lib -args {-2.75}
Au lieu de spécifier la bibliothèque à la ligne de commande, vous pouvez utiliser coder.updateBuildInfo pour la spécifier dans la fonction. Utilisez cette option pour préconfigurer la compilation. Ajoutez la ligne suivante au bloc else :
coder.updateBuildInfo('addLinkObjects','myabsval.lib','$(START_DIR)\codegen\lib\myabsval',100,true,true);
Exécutez la fonction MEX callmyabsval_mex qui appelle la fonction de bibliothèque myabsval.
callmyabsval_mex(-2.75)
ans =
2.7500Appelez la fonction MATLAB callmyabsval.
callmyabsval(-2.75)
ans =
2.7500callmyabsval a le comportement souhaité pour l’exécution dans MATLAB et dans la génération de code.Arguments d'entrée
Cible de la génération de code, spécifiée en tant que vecteur de caractères ou string scalar. Spécifiez l’une des cibles suivantes.
'MATLAB' | Exécution dans MATLAB (aucune génération de code) |
| Langages cibles supportés pour la génération de code |
'MEX' | Génération d’une fonction MEX |
'Sfun' | Simulation d’un modèle Simulink®. Également utilisée pour l’exécution en mode Accelerator. |
'Rtw' | Génération d’une cible LIB, DLL ou EXE. Également utilisée pour l’exécution dans Simulink Coder™ et en mode Rapid Accelerator. |
'HDL' | Génération d’une cible HDL |
'Custom' | Génération d’une cible personnalisée |
Exemple : tf = coder.target('MATLAB')
Exemple : tf = coder.target("MATLAB")
Remarque
En cas de génération de code CUDA ou High-Level Synthesis (HLS), coder.target('C++') a toujours la valeur true.
Capacités étendues
Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.
Génération de code GPU
Générez du code CUDA® pour les GPU NVIDIA® avec GPU Coder™.
Historique des versions
Introduit dans R2011a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)