Error in .exe but not in .m

2 visualizzazioni (ultimi 30 giorni)
Helder Correia
Helder Correia il 15 Set 2016
Risposto: Helder Correia il 16 Set 2016
Hello,
I've generated an executable file from an matlab script using the deploytool of Matlab (type: Console application).
When I run the code in Matlab there are no errors. However, when I run the .exe file, with the same inputs, from cmd I got an error: "Matrix dimensions must agree". Below I show you the code which generated the error:
Vignetting(Vignetting<=threshold)=0;
I have tried to replace this line by:
idx=find(Vignetting<=threshold);
Vignetting(idx)=0;
But once again, I got the error "Matrix dimensions must agree" when I run the .exe
Why do I get this error in the .exe file and in Matlab the code works well? How can I solve this problem (recommendations)?
Thank you very much in advance,

Risposta accettata

Steven Lord
Steven Lord il 15 Set 2016
Without seeing the code I can only guess, but is threshold one of the input arguments to the function from which you generated the executable? If so, read the next-to-last section in the documentation page describing how input arguments are passed into standalone applications. My guess is that you're passing in a threshold of something like 0.1 which is treated as the char vector '0.1' not the number 0.1.

Più risposte (2)

Image Analyst
Image Analyst il 15 Set 2016
Put these lines before that line
whos Vignetting
whos threshold
What does it show you? Is threshold a scalar or an double array, or a string? How did you set threshold?

Helder Correia
Helder Correia il 16 Set 2016
In fact, threshold is an input argument. I should have converted this variable in a numeric number:
threshold=str2num(threshold);
Now, it is working.
Thank you very much.

Categorie

Scopri di più su MATLAB Compiler in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by