How to auto-indent/-format matrices in Matlab? [duplicate] - matlab

How can I reformat code in MATLAB editor?
Other IDEs usually have reformat or format option that arrange position of written codes.
Does editor of MATLAB have it?
I use MATLAB R2013a

I have created a minimalist, configurable MATLAB source code formatter, which can be used directly in the MATLABEditor.
You can find it on GitHub: MBeautifier on GitHub
Main features:
Padding operators and keywords with white spaces
Configurable indentation character and level. Indentation using the Smart Indent functionality of the MATLAB Editor
Removal/addition of continuous empty lines
Inserting missing element separators (commas) in matrix and cell array initializations
Insert missing continuous symbol line in matrix and cell array initializations
In-lining continuous lines
Formats the current page of the MATLAB Editor or only a selection in the MATLAB Editor or file(s)
While everything above is configurable in a single XML file
It can be used in Matlab versions starting from R2013b.
Deployment and configuration are described on GitHub (link above).

A few default formatting shortcuts for the Matlab editor - assuming windows
ctrl+A - Select all
ctrl+I - Smart Indend
ctrl+= - Collapse All (loop control statements)
ctrl+shift+= Expand All (loop control statements)
ctrl+] - Increase indent
ctrl+[ - Decrease indent
ctrl+J - Wrap comments
Other useful keyboard shortcuts for Matlab editor
ctrl+R - Comment out selection (adds leading % to all selected lines)
ctrl+T - Uncomment selection (removes leading % from selected lines)
ctrl+K - Kill line (deletes from caret to end of line, if line is empty deletes newline)
ctrl+M - View or expand current message
ctrl+F1 - Display function hints
Additional shortcuts can be found or defined in Prefrences>Keyboard>Shortcuts
Finally a special mention to ... for line continuation...
example:
[output1,output2,output3]=calltoafunctionwithlotsofinputs(...
intput1, input2, input3, input4, input5, ...
'property1', propertyvalue1, ...
'property2', propertyvalue2)

While not fulfilling the "in the editor" part of your question, there is another MATLAB style checker / code formatter: https://github.com/florianschanda/miss_hit

Related

Justify legend text in Matlab

I have the legend shown below:
On the left, the text is aligned, however, on the right the numbers are not aligned. How can I align the numbers too?
The tab command (\t) does not seem to work when providing strings to table entries. However, you can solve the problem if you work in the latex environment, define every entry as a single-row tabular and define the first column to have a specific width (e.g. 1 cm):
plot(eye(2)); % example plot
h=legend('\begin{tabular}{p{1cm}r}first:&1\end{tabular}',...
'\begin{tabular}{p{1cm}r}second:&2\end{tabular}'); % table entries in latex
set(h,'interpreter','latex'); % set interpreter

Enlarging text while having line numbers enabled covers the view of the numbers?

Enlarging text while having line numbers enabled covers the view of the numbers?
I've enabled line numbers globally by adding (global-linum-mode t) to init.el.
Zooming in on text using the C-x C-+ keybinding results in the behavior seen below, which is not satisfactory.
What can I do to fix this? Are their working alternatives?
I don't see this problem, using library zoom-frm.el (see also Emacs Wiki page Set Fonts).
But vanilla Emacs clearly has another bug, in that enlarging the text by scaling enlarges the horizontal space used for the line numbers (good), but shrinking the text then does not shrink that space used for line numbers (bad). I've just now filed Emacs bug #24164 for this.

Multi-cursor Editing possibility in MATLAB Editor?

Is there a way to multiline edit code in matlab, Instead of copy-paste a single line repeatedly, or copy paste from matlab to visual studio editor to take advantage of the visual studio's alt + cursor select?
Just a quick mention that MATLAB officially support multi-line cursor since R2018a, just hold Alt and hold left mouse button (also Alt+Shift in linux) to draw a column selection across multiple lines.

Display equations and special characters in Matlab GUI textbox

I want to write Greek characters and equations in textbox (Static Text) of Matlab GUI. Is it possible to write? I tried Latex $\eta { x }^{ 2 }+c$ but nothing changes. It displays the same.
Unfortunately it seems Matlab doesn't use the same text drawing methods on graphs, which support LaTeX, as it does on GUI elements. Here is a webpage explaining a workaround: http://undocumentedmatlab.com/blog/customizing-matlab-labels/
Basically, you will need to manually determine where you want the text to be on your GUI in terms of pixel position, and length, and rewrite your equation in HTML instead of LaTeX.
In the GUIDE interface for your GUI, you will need to click the "Editor" button on the toolbar menu, and find the section:
function initialize_gui(fig_handle, handles, isreset)
You'll want to insert your labeling code before the:
% Update handles structure
guidata(handles.figure1, handles);

Basic Cursor Movement Between Paragraphs in Matlab Editor

Is there a way to move between paragraphs in the Matlab Editor as is a common feature in any other general text editor out there. ie.
Ctrl+Up and Ctrl+Down to Move cursor between paragraphs as in Winedt.
I don't think there is such a shortcut. I must admit I have never missed it myself - what would a "paragraph" in your code be defined as?
BTW, are you aware that Ctrl+Down is used to go from one Cell to the next in MATLAB's cell mode? Cells could be considered logical "paragraphs" of your code, and you set their limits themselves (with comment lines starting with a double %%).