Error: Attempt to reference field of non-structure array.

1 view (last 30 days)
Hello, I am writing a small project with GUI and had this error while running the .fig file. This error does not happen when I click run while the .m file is open, only if I start directly from the .fig file.
Attempt to reference field of non-structure array.
Error in But_Disable (line 3)
Error in Minesweeper>Start_Callback (line 27)
But_Disable
Error in gui_mainfcn (line 96)
feval(varargin{:});
Error in Minesweeper (line 15)
gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)Minesweeper('Start_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating uicontrol Callback
Please help me to see what is the problem, thanks. The files have been attached within the .zip file.
  3 Comments
Walter Roberson
Walter Roberson on 4 Oct 2017
It is possible to create a .fig file in which all the code was stored as anonymous functions or as strings: such a .fig could run "without opening any .m". It would not be practical. A number of years ago, a fellow wrote an entire novel without using the letter "e", just to show it could be done: it was possible, but not very useful.
All code that affects the screen must run in the foreground. It is possible, using the Parallel Computing Toolbox, to run code in another worker, but those workers cannot change the display.
Stephen
Stephen on 5 Oct 2017
Are you worried about the .m file being visible, or are you worried about a name clash with another function?

Sign in to comment.

Accepted Answer

Stephen
Stephen on 3 Oct 2017
The .fig file is not a stand-alone GUI. The like named .m file instantiates the .fig as a GUI. The .fig is like a structure for building GUI rules, while the .m file contains the GUI functions and rules. So when you press the run button on fig without the .m file, it's probably passing a different input to the function than you would expect.
  1 Comment
Walter Roberson
Walter Roberson on 3 Oct 2017
Right. GUIDE is not designed to be able to execute the .fig file.
It is theoretically possible to build a .fig that can initialize properly when the .fig is run instead of the .mat file, but I have never seen it done outside of my own experimentation to prove it possible.

Sign in to comment.

More Answers (0)

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!