Info

此问题已关闭。 请重新打开它进行编辑或回答。

cannot findobj() when running as an EXE application

1 次查看(过去 30 天)
Hi Guys,
I have this weird issue where when im running my application from the Matlab env. everything is working well. when i later on compile it into an EXE and run it, it doesn't work. debugging showed me that the problem is when calling findobj();. when running in Matlab it returns the handle to the object im looking for and when running as an EXE it doesnt. For reference, see attached 2 images. one taken from within matlab and the second from the cmd prompt when EXE was running.
Console output running code from Matlab:
console output running compiled code from windows:
Code used:
% resetAllCheckBoxes(h);
checkBoxHandle = findobj('Tag',['param_',num2str(checkBoxNum)]);
disp('CHECK BOX HANDLE:')
checkBoxHandle
input('Press entere to continue');
set(checkBoxHandle,'Value',1);
end
Any idea whats going on here?

回答(1 个)

Image Analyst
Image Analyst 2015-9-19
Add this code
str = ['param_',num2str(checkBoxNum)]
fprintf('checkBoxNum = %f\nLooking for tag = %s', checkBoxNum, str);
Any difference in what you see between the compiled and development environment?
  2 个评论
E
E 2015-9-19
Hi, THanks. I changed the code to the below and now it is working. still cant say why it didnt work before...
resetAllCheckBoxes(h);
set(h.(strcat('param_',num2str(checkBoxNum))),'Value',1);
Image Analyst
Image Analyst 2015-9-19
You might want to investigate what ishandle() returns:
itsAValidHandle = ishandle(checkBoxHandle)

Community Treasure Hunt

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

Start Hunting!

Translated by