Style in Matlab functions

3 views (last 30 days)
Stefan Martinek
Stefan Martinek on 8 Feb 2023
Answered: Jan on 8 Feb 2023
What style is preferred in function variables? E.g.:
figure('WindowState','maximized') vs. figure('windowstate','maximized') vs. figure('WindowState','Maximized'); or find(xxx,1,'first') vs. find(xxx,1,'First') etc.
All the above works, but is any version more robust towards future Matalb updates?
Thank you.
Stefan
  1 Comment
Vilém Frynta
Vilém Frynta on 8 Feb 2023
I don't think that this will change in future updates, however, I think you can't go wrong with the styles that are used in the official documentations.
On the figure documentation website, there are some code examples:
figure('Name','Measured Data','NumberTitle','off');
set(groot,'DefaultFigureColormap','remove')
Theses examples look just like yours figure('WindowState','maximized').
Arguments have big letter at the end of each word and their values are lowercased (unless it's your own value like name).
However, I am not Mathworks employee and I do not have any information on this topic. This is something that just makes the most sense to me.

Sign in to comment.

Answers (1)

Jan
Jan on 8 Feb 2023
I use the upper/lower case of the default setting:
h = figure;
set(h)
Alphamap: {} BusyAction: {'queue' 'cancel'} ButtonDownFcn: {} Children: {} Clipping: {[on] [off]} CloseRequestFcn: {} Color: {1×0 cell} Colormap: {} ContextMenu: {} CreateFcn: {} CurrentAxes: {} CurrentCharacter: {} CurrentObject: {} CurrentPoint: {} DeleteFcn: {} DockControls: {[on] [off]} FileName: {} GraphicsSmoothing: {[on] [off]} HandleVisibility: {'on' 'callback' 'off'} Icon: {} InnerPosition: {} IntegerHandle: {[on] [off]} Interruptible: {[on] [off]} InvertHardcopy: {[on] [off]} KeyPressFcn: {} KeyReleaseFcn: {} MenuBar: {'none' 'figure'} Name: {} NextPlot: {'new' 'add' 'replace' 'replacechildren'} NumberTitle: {[on] [off]} OuterPosition: {} PaperOrientation: {'portrait' 'landscape' 'rotated'} PaperPosition: {} PaperPositionMode: {'auto' 'manual'} PaperSize: {} PaperType: {1×26 cell} PaperUnits: {'inches' 'centimeters' 'normalized' 'points'} Parent: {} Pointer: {'arrow' 'ibeam' 'crosshair' 'watch' 'topl' 'topr' 'botl' 'botr' 'circle' 'cross' 'fleur' 'custom' 'left' 'top' 'right' 'bottom' 'hand'} PointerShapeCData: {} PointerShapeHotSpot: {} Position: {} Renderer: {'painters' 'opengl'} RendererMode: {'auto' 'manual'} Resize: {[on] [off]} Scrollable: {[on] [off]} SelectionType: {'normal' 'open' 'extend' 'alt'} SizeChangedFcn: {} Tag: {} ToolBar: {'none' 'auto' 'figure'} Units: {'inches' 'centimeters' 'characters' 'normalized' 'points' 'pixels'} UserData: {} Visible: {[on] [off]} WindowButtonDownFcn: {} WindowButtonMotionFcn: {} WindowButtonUpFcn: {} WindowKeyPressFcn: {} WindowKeyReleaseFcn: {} WindowScrollWheelFcn: {} WindowState: {'normal' 'maximized' 'minimized' 'fullscreen'} WindowStyle: {'normal' 'modal' 'docked' 'alwaysontop'}
The documentation explains, that the names and values are not case-sensitive, so it can be expected to be compatible with future versions also. Matlab is very stable in such documented details.
Using the dot notation requires the correct case for the names:
h.WindowState = 'normal';
% Error:
h.windowstate = 'normal';
Unrecognized property 'windowstate' for class 'matlab.ui.Figure'.

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!