Bonjour,
J'ai essayé de convertir une fonction Matlab en code C++ en utilisant Matlab Coder mais il m'affiche l'erreur suivante:
Try and catch are not supported for code generation.
Avez vous de propositions pour résoudre ce problème?
Merci d'avance![]()
Bonjour,
J'ai essayé de convertir une fonction Matlab en code C++ en utilisant Matlab Coder mais il m'affiche l'erreur suivante:
Try and catch are not supported for code generation.
Avez vous de propositions pour résoudre ce problème?
Merci d'avance![]()
Voici un parfait exemple d'une mauvaise utilisation du try-catch.
Ajoute ceci juste après le try ET juste après le catch :
Utilise ensuite la fonction isa dans une simple condition sur les valeurs renvoyées précédemment par class.
Code : Sélectionner tout - Visualiser dans une fenêtre à part class(inputImage)
A priori :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if isa(inputImage, 'char') % imread else % size
Merci beaucoup Jerome pour votre réponse.
Je n'ai pas bien compris votre proposition. En fait, je n'ai pas codé avec Matlab depuis plusieurs années![]()
Pourriez-vous me donner plus de détails?
Vous trouverez ci-dessous la déclaration complète du Try/Catch dans mon code:
Merci encore une fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 % Read the input image try % Read an image using imread function inputImage=imread(inputImage); % grab the number of rows, columns, and channels [nr, nc, nChannels]=size(inputImage); % Grab the image information (metadata) of input image using the function imfinfo inputImageInfo=imfinfo(inputImage); % Determine if input left image is already in grayscale or color if(getfield(inputImageInfo,'ColorType')=='truecolor') inputImage=rgb2gray(inputImage); else if(getfield(inputImageInfo,'ColorType')=='grayscale') inputImage=inputImage; else error('The Color Type of Left Image is not acceptable. Acceptable color types are truecolor or grayscale.'); end end catch % if it is not an image but a variable % grab the number of channels [nr, nc, nChannels]=size(inputImage); if(nChannels)>1 inputImage=rgb2gray(inputImage); else inputImage=inputImage; end end
Essaie ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 % Read the input image if isa(inputImage, 'char') % Read an image using imread function inputImage=imread(inputImage); % grab the number of rows, columns, and channels [nr, nc, nChannels]=size(inputImage); % Grab the image information (metadata) of input image using the function imfinfo inputImageInfo=imfinfo(inputImage); % Determine if input left image is already in grayscale or color if(getfield(inputImageInfo,'ColorType')=='truecolor') inputImage=rgb2gray(inputImage); else if(getfield(inputImageInfo,'ColorType')=='grayscale') inputImage=inputImage; else error('The Color Type of Left Image is not acceptable. Acceptable color types are truecolor or grayscale.'); end end else % if it is not an image but a variable % grab the number of channels [nr, nc, nChannels]=size(inputImage); if(nChannels)>1 inputImage=rgb2gray(inputImage); else inputImage=inputImage; end end
Merci beaucoup
Vous m'avez sauvé la vie![]()
Partager