【问题标题】:Does MATLAB have any kind of debug mode that shows vector and matrix dimensions?MATLAB 是否有任何显示向量和矩阵维度的调试模式?
【发布时间】:2017-07-20 21:55:32
【问题描述】:

我是 MATLAB 新手(在机器学习课程中使用它)。

语言的某些部分非常棒 - 例如,向量和矩阵数学的符号方便。但我发现我在各种操作的因果关系上苦苦挣扎(例如,“.*”与“*”),而我最终要做的是将代码行分解为组成表达式,以查看它们的维度生产。

在 MATLAB 中是否有任何“模式”(因为没有更好的词)可以告诉我中间表达式的维度是多少?

我能想到的最接近的等价物是 SQL Server 查询分析器,它将 SQL 查询(也是面向集合的)分解为一系列步骤,让您了解正在执行的内容与您的意图相反。

在 MATLAB 或其任何扩展中是否存在这样的东西?

TIA 乔什

【问题讨论】:

标签: matlab debugging matrix


【解决方案1】:

有一个未记录的选项format debug,它可以让你做这样的事情:

>> format debug
>> x = rand(3)
x =

Structure address = 7fed6d1cada0
m = 3
n = 3
pr = 7fecdd3353e0
pi = 0
    0.9649    0.9572    0.1419
    0.1576    0.4854    0.4218
    0.9706    0.8003    0.9157

这仅适用于二维数组。

【讨论】:

  • 嗯......它并不完美,但更接近我正在寻找的东西。我会试一试。谢谢你。
【解决方案2】:

正如烧杯所指出的,您可以通过沿其 mlint“编辑器”(编辑器左侧的每个行号的列)设置断点来使用MATLAB's debug mode

另外,关于尺寸的问题。使用带有中间变量或表达式兴趣的size() 函数来确定其维度。

一旦您的程序在您设置的断点处停止,您将使用命令窗口执行您的函数调用,如下所示: size(X) 或者size(X*A) 取决于您感兴趣的变量是什么。请注意,不要在这些调用的末尾包含;,否则将不会显示输出。

【讨论】:

  • 谢谢。我知道如何使用断点和命令窗口(以及 ; 的作用),但我发现这些仅做基本的事情就很困难。我宁愿有类似“假设”模式的东西——如果它存在的话。
  • 当然。抱歉,我无法提供更多帮助。我倾向于将 MATLAB 视为一个大的“假设”环境,在我进行过程中进入函数调用以查看正在发生的事情并评估控制台上的中间表达式。你是对的,但它可能会变得乏味。我会留意其他回复。希望您能找到更合适的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-22
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多