Open .Fig file with compiled exe
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Stefano Cucchi
el 26 de Feb. de 2022
Comentada: Walter Roberson
el 6 de Jun. de 2023
Hello,
i'm having a problem opening .fig files using a executable file compiled with Matlab Compiler. The strange fact is that if i use the normal script (in Matlab) the .fig files are opened properly, but not using the executable.
Here's the code:
%get the list of files in the current directory
a=dir;
a(1:2)=[];
%create list of names with only .fig files
j=1;
for i=1:length(a)
list_fig(j)=string(a(i).name);
if endsWith(list_fig(j),'.fig')
j=j+1;
else
list_fig(j)=[];
j=j;
end
end
%choose the .fig files i want to open
[indfig,tf] = listdlg('ListString',list_fig,'SelectionMode','multiple','Name','Seleziona figure','ListSize',[250,150]);
for i=1:length(indfig)
openfig(list_fig(indfig(i)));
end
If i use OpenFile.exe i get this result:

If i use OpenFig.m i get this (correct) result:

As you can see, in the second case i get more useful "tools" (Edit Plot is the one i really need).
Why? How can i solve this problem?
Thank you in advance
0 comentarios
Respuesta aceptada
Walter Roberson
el 26 de Feb. de 2022
The plot editor cannot be used from standalone execution
If the tools could be used then users would be able to set arbitrary code as callback functions, and so would gain access to functions not compiled into the executable, which would be a license violation.
Question: why are you not using
a=dir('*.fig');
to avoid the loop testing the file name?
And how do you know which directory to cd to in a portable way? See uigetfile() and ctfroot()
2 comentarios
Walter Roberson
el 6 de Jun. de 2023
I recommend that you have your lawyer assess the Mathworks license terms before relying on your personal interpretation.
Más respuestas (0)
Ver también
Categorías
Más información sobre Startup and Shutdown en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!