我是MATLAB的新手(将其用于机器学习课程(。
语言的某些部分非常棒 - 例如,矢量和矩阵数学的符号便利性。但我发现我正在努力解决各种操作的因果关系(例如,".*"与"*"(,我最终所做的是将代码行分解为组成表达式,看看它们产生什么维度。
MATLAB 中是否有任何"模式"(因为缺乏更好的词(可以告诉我中间表达式的维度是什么?
我能想到的最接近的等价物是SQL Server查询分析器,它将SQL查询(也是面向集的(分解为一系列步骤,为您提供有关正在执行的内容而不是预期内容的线索。
这样的事情存在于MATLAB或其任何扩展中吗?
蒂亚 乔希
有一个未记录的选项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-D 数组。
正如烧杯所指出的,您可以通过沿其 mlint"编辑器"(编辑器左侧的列,每个行号(设置断点来使用 MATLAB 的调试模式。
另外,对于您关于尺寸的问题。 将size()
函数与中间变量或表达式兴趣一起使用以确定其维度。
一旦程序在设置的断点处停止,您将使用命令窗口执行函数调用,如下所示:size(X)
或者size(X*A)
取决于你感兴趣的变量是什么。 请注意,请勿在这些调用结束时包含;
,否则不会显示输出。