How to view parameter values while debugging in App Designer?

119 views (last 30 days)
Hi,
I am new to App Designer and have a quick question. I am trying to convert a few scripts over to App Designer so there is a user interface. I am unable to view the parameter values while trying to debug the app. Is there a way to view the parameter values similarly as you would when debugging a script (view in workspace)? There are parameters showing in the workspace but I can't view the values in the parameters.
Thanks,
Art

Accepted Answer

Adam Danz
Adam Danz on 9 Jan 2020
Edited: Adam Danz on 11 Feb 2025 at 14:27
Here are several methods of seeing the values of variables in AppDesigner code.
Set up debug mode
Place a break point anywhere within the function that stores the variables you'd like to explore. You can place a break point by clicking on the gray horizontal line along the left edge next to the line numbers. Learn more: setting break points.
See values by hovering the mouse over the variable or exploring the workspace.
After setting the break point, run the app and execute the callback function that contains the line break (example: press the button that calls the callback function). If the line break is in the startup function, just run the app. When execution gets to the break line, execution will pause and you will then have access to all variable values prior to the break point by hovering your mouse over the variable or exploring the workspace browser. Press F10 to step through the rest of the code line by line or F5 to coninue execution of the code.
See values by printing them in the command window.
Instead of hovering the mouse over the variable as explained above, you could highlight the variable and press F9 which will print its value to the command window.
+ F9
<--- command window
Use the ~fprintf(__) trick with conditional breakpoints
This is my favorite way to see what's going on inside the code without making any changes to the file. Set Conditional breakpoints in the file using a ~fprintf(__) statement. See my article on this topic in the Discussions area: Debugging Using Conditional Breakpoints & fprintf.
Add fprintf() commands in the code
Use an fprintf() command as shown below to see the value of variable 'x' in the command window every time this line is executed.
fprintf('x = %.5f \n', x)
% [1] [2]
% [1] this will show 5 decimal places
% [2] this will add a new line after showing the variable value
For more complex variables such as the content of structure 's',
fprintf('s = \n')
disp(s)
  5 Comments
Adam Danz
Adam Danz on 13 Jan 2020
Moved: Voss on 10 Feb 2025 at 19:29
I would recommend avoiding the use of assigning() in this case, for the following reasons.
  1. Debug mode is designed exactly for this reason: to explore variable values within function workspaces; and it avoids the rest of the problems liste below.
  2. assigning() results in variables 'magically' appearing in the designated workspace whose origins are very difficult to trace. It's easy to forget to comment-out these lines of code which could result in a nightmare of variables appearing without trace.
  3. You risk overwriting variables in the designated workspace that you may want to keep.
  4. As alluded to above, you must remember to comment-out or remove those lines of code which is additional work.
  5. Sharing the content of a variable may not be that informative without knowing the content of other variables. This is not a problem when using debug mode.
Image Analyst
Image Analyst on 10 Feb 2025 at 19:14
@Adam Danz another way is that if you've set a breakpoint then the variables should be in the workspace panel in MATLAB. So you can just thrash your window from AppDesigner over to MATLAB and look in the workspace panel (type worspace in the command window if the workspace panel is not visible). For small variables you can see the variables right away in the workspace panel. For larger variables, like structure arrays and cell arrays, you can double click on the variable name in the workspace panel to open it up in the Variable Editor window.
But all 3 of these workarounds are not ideal. We don't want to have to switch over to another window (MATLAB). We want to have the workspace panel and the command window all available right in app designer. Or somehow create a unified, consolidated UI that combines MATLAB and AppDesigner into a single window with all the panels that we need.

Sign in to comment.

More Answers (0)

Categories

Find more on Interactive Model Editing in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!