Octave:如何检查在单独的 .m 文件中创建的变量?

Octave: How do I examine variables created in a seperate .m file?

我有 2 个 .m 文件,例如说“project_main.m”和“my_function.m”

当我 运行 Octave 中的程序时,它工作正常。但是,我在工作区中看到的唯一变量是在 project_main.m 中创建的变量,我想从工作区检查在 my_function.m 中创建的变量。

示例:

project_main.m:

close all;
clear all;
clc;

X = 1;
Y = 2;

%---call function in external .m file---
my_function(X, Y);

my_function.m:

function functionResults = my_function(iX, iY)

fprintf("X = %d, Y = %d\n", iX, iY);
Z = iX*iY;
fprintf("Z = %d\n", Z);

end

这将给我命令 window:

X = 1, Y = 2
Z = 2
>>

不出所料。但是在工作区我只看到 XY,而不是 Z: 我知道我可以在命令 window 上看到 Z,但是如何检查在工作区区域的单独 .m 文件中创建的变量?

您需要一个调试器。 This documentation page seems like a good start. Either run your function line-by-line using the command window, or set breakpoints 到 return 当前函数工作区到全局工作区。

基本上:函数内的变量是该函数的私有变量,只有您输出的变量会被复制到您的工作区中。在你的情况下,这没什么,因为 fprintf 没有 return 输出,它只是打印到命令 window.