Error while evaluating uicontrol Callback
Afficher commentaires plus anciens
I am encountering a weird problem.
I use my personal computer to run matlab on a remote linux server (connection via ssh). Inside Matlab I run a toolbox that opens a GUI. When I use my laptop to run the Matlab Toolbox, it works perfectly.
However, when a colleague of mine uses her windows machine to do the same i.e. connect to the server and run matlab and the toolbox, she gets a weird error saying "Error while evaluating uicontrol Callback". I am attaching a screenshot.
The matlab installation on the server is perfect as it works perfectly in my case.
What causes this matlab error? It occurs when I click on a specific button of the toolbox's GUI that is supposed to open a window to select a file.
This button calles the function as shown here: https://c4science.ch/source/CAP_Toolbox/browse/master/CAP_TB.m$1261 and never opens the GUI for file selection. Instead it throws the error.
To give more info, when I use my laptop and it works fine, I get a window as shown in the attached file named "window.png"
9 commentaires
Jan
le 23 Fév 2022
Please post the error message as text, not as screenshot. The message is clear: The 25th character of the mentioned line is not recognized. I assume, it is not a quote (char(39)), but an accent ´ or ` .
But actually uigetfile should be a part of Matlab's toolbox and the command usejava also, so invalid characters are not expected. Do you use an own implementation of uigetfile?
Jan
le 23 Fév 2022
The toolbox containing CAP_TB is not the problem, but the called uigetfile command. Either the colleague has modified this function or inserted a user-defined folder in front of the path, which contains an invalid usejava function. The error message is clear: it is the 25th character of the shown line in usejava, so it does not depend on the used toolbox, but on the Matlab installation.
If the colleague to run uigetfile directly, the same error should occur.
I wouldn't use the shown toolbox for productive work:
addpath(genpath('./Plotting'));
addpath(genpath('./Analysis'));
addpath(genpath('./DefaultData'));
% Sets warnings off
warning('off');
Brrrr. Adding folders relying on the current folder is a bad programming practice. Disabling all warnings is evil. The excessive usage of clear is not Matlab'ish, but a waste of time.
Makis
le 23 Fév 2022
Jan
le 23 Fév 2022
This seems to be the same error. Again: If you post it as text instead of a screen shot, we could check the ASCII code of the 25th character. Unfortunately seeing only the screen shot is just 1mm away from the solution and we can almost help you.
Maybe this is not the original system_dependent.m file? See:
which system_dependent -all
Makis
le 23 Fév 2022
Jan
le 23 Fév 2022
Sorry, I was confused. The failing function is usejava. So the output of
which usejava -all
matters and the double value of 25th character of line 44:
S = fileread('usejava.m');
C = split(S, char(10));
C{44}
double(C{44}(25))
Réponses (0)
Catégories
En savoir plus sur Startup and Shutdown dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!