【问题标题】:Is there anything in Matlab analogous to C#'s #region / #endregion code collapsing structure?Matlab 中有什么类似于 C# 的 #region / #endregion 代码折叠结构的吗?
【发布时间】:2015-06-10 22:12:14
【问题描述】:

我正在使用一些 matlab 代码并使用良好的块 cmets 来阻止文档的某些部分,但是一旦我完成充实它们,将所有部分折叠起来肯定会很好。我想通用代码格式化区域块也可能是 Matlab 未来的功能要求。

我最近发现了分节符,但对于我的目的而言,它看起来过于精细,其中一个目的是对一组相关函数进行分组。据我所见,部分不能包含函数定义。相比之下,C# 的 #region code block formatting 是通用的,支持任何源内容的任意嵌套。

【问题讨论】:

    标签: matlab code-regions


    【解决方案1】:

    有许多 MATLAB 结构可以在编辑器中使用+/- 符号进行折叠。最接近您正在寻找的东西可能是使用由%%分隔的部分进行代码折叠。

    在MATLAB中默认是没有开启的,你需要去:

    HOME > Preferences > Editor/Debugger > Code Folding
    

    您将在此处看到已启用构造的列表 - 检查 sections

    现在用部分分隔代码并折叠起来!

    %% 
    Some code
    Some code
    %%
    Code in another section
    ...
    

    【讨论】:

    • 很好,很高兴知道我可以操纵折叠的完全控制程度。问题是这些代码部分似乎只适用于“主体”代码块,而不是分布在 m 文件中的一组函数。这正是我在编写这个复杂的 GUIDE Fig 文件时受到的轰炸,其中到处都是一堆 UIControl。我想组织所有的回调,我正在使用部分标题,但我不知道如何使这些部分可折叠。我想我可以缩进以提高可读性,但这里最好折叠。
    • 我查看了您的更新帖子和屏幕截图。您的意思是您无法跨越多个功能的部分吗?我不是这里的专家,但是否有多个部分分隔符(%% 除外)并且以某种方式存在于函数上方,在他们的文档中,强制一个新部分?只是在这里猜测
    • 从使用场景和instructional video 看来,Mathworks 的意图是支持将其称为“增量批处理行执行”,但对于函数而言,行为上没有这样的等价性。
    • 好的引导继续,看看是否有任何分层部分分隔符。我将深入研究文档,看看会发生什么。
    • 是的,我对部分有复杂的感觉。它们有多种用途:运行代码子集、发布工具中的文档部分,以及现在折叠代码(具有上述怪癖)。我更喜欢单独的分隔符,但稍微深入研究一下让我觉得只有%%
    猜你喜欢
    • 1970-01-01
    • 2011-07-05
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    相关资源
    最近更新 更多