Is there a way to 'fold up' sections of code - like when you close up a for loop

Is there a way to hide sections of code - like when you close up a for loop?
I have quite a long code with a few different sections, and while I'm working on one section I'd like to hide the other sections so the code is a bit more manageable to get around.

7 comentarios

Tom's question
Is there a way to hide sections of code - like when you close up a for loop?
I have quite a long code with a few different sections, and while I'm working on one section I'd like to hide the other sections so the code is a bit more manageable to get around.
Accepted answer doesn't seem to work in MATLAB 2016a live script. Any ideas?
Works for me in MATLAB 2016b. The settings are under MATLAB > Editor/debugger > Code Folding.
And if you right click anywhere in the code, the bottom section of the popup window is 'Cold Folding' > Fold All. Useful for a quick return to a high level view.
I put everything in a for loop for i=1:1 and then use it to collapse everything inside. Very easy
Kelvin Prosyk
Kelvin Prosyk el 9 de Jul. de 2021
Editada: Kelvin Prosyk el 9 de Jul. de 2021
Inserting artificial code loops inserts extraneous code and reduces readability if the code is published. The drawback of the existing %% code section approach is there is no end-section marker. It means you can't create an isolated code section in the same way as code blocks like a for loop. I'd love to seem Mathworks introduce a system of %%<section_start> and %%<section_end> tags.
Eric Daigrepont
Eric Daigrepont el 23 de En. de 2022
Editada: Eric Daigrepont el 23 de En. de 2022
@Kevlin Prosyk, I agree wholeheartedly. I try to use "%%" to held organize collapsible sections, but the auto-end-section significantly limits the ability to manage sections due to erratic updates and inconsistent operation. Frankly, one of the earliest languages I ever used, Pascal maybe, used "//" to comment the remainder of the line, and "/* ... */" to comment sections. I've been annoyed by any language since that did not allow the programmer to comment sections. And with the added benefit of modern code-folding,... controlling exactly how you'd like to fold you sections would add wonderfully for those of us love of clean, organized code.

Iniciar sesión para comentar.

 Respuesta aceptada

Under preferences you can enable code folding for blocks. Blocks are defined in MATLAB as sections starting with %% (I am not sure if they can have anything else on the line).
So you should be able to fold
a=1;
b=2;
x=3;
y=4;

11 comentarios

I can now put a section, but to add fold/unfold feature?
@Soumitra Vadnerkar
I use Matlab R2016. In that I was able to enable fold/unfold, use following steps
Home tab > preferences > Editor/Debugger > code folding > sections
This works perfectly. Thank you very much.
Thanks! You just made my project a lot easier!
Thank you very much, made my day!
Many thanks Daniel. I have logged in only to say this. You made my day!
Thank you so much!
Absolute W thank you
Awesome dude. Man I am happy now

Iniciar sesión para comentar.

Más respuestas (2)

Try this:
for d = 1
[Your code here]
end
its collapsable on demand and doesn't effect the code at all (someone please correct me if I'm wrong). It can be used as many times as you like for each section of the code.

2 comentarios

I recently discovered this trick has its shortcomings. You can't define functions instead of control statements (even if it is just a loop that doesn't actually loop).
I wish that you could define the end of code sections so you could nest code sections inside of code sections.
I think you mean "inside of control statements" rather than "instead of control statements" ?

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

Tom
el 4 de Abr. de 2012

Comentada:

el 28 de En. de 2025

Community Treasure Hunt

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

Start Hunting!

Translated by