如何在命令行实现类似MATLAB Workspace的变量名称、类型及值查看功能
不同交互环境下查看全量变量信息的方案
MATLAB 原生环境
MATLAB 自带的whos仅返回变量名、类型、占用空间、维度等元信息,不直接打印值,你可以自定义一个小脚本来实现汇总展示:
- 先通过
who拉取当前工作区所有变量名 - 遍历变量,读取类型、维度、值,对过长的值做截断避免刷屏
示例可直接复用的脚本:
% 保存为 workspace.m 放在MATLAB搜索路径下,命令行直接调用即可 vars = who; fprintf('%-15s %-20s %-15s %s\n', '变量名', '类型', '维度', '值'); fprintf('--------------------------------------------------------------------\n'); for i = 1:length(vars) var_name = vars{i}; var_val = evalin('base', var_name); var_type = class(var_val); var_size = mat2str(size(var_val)); var_str = mat2str(var_val); if length(var_str) > 40 var_str = strcat(var_str(1:37), '...'); end fprintf('%-15s %-20s %-15s %s\n', var_name, var_type, var_size, var_str); end
Python 交互环境(IPython/原生REPL)
IPython 自带的whos会默认展示值的短摘要,如果需要完整展示所有自定义变量的信息,可以自定义工具函数:
def whos_full(): # 过滤掉系统内置的下划线开头变量 for var_name, var_val in globals().items(): if not var_name.startswith('_'): var_type = type(var_val).__name__ print(f"{var_name:<15} 类型:{var_type:<15} 值:{repr(var_val)}")
定义后直接执行whos_full()即可输出所有信息。
Shell 环境(Bash/Zsh等)
如果要查看命令行shell本身的所有变量,可以直接执行set命令,会输出全量变量名和对应值;如果仅需查看环境变量,执行printenv | sort即可得到排序后的规整结果。
Julia 环境
新版本Julia用varinfo()替代了旧版的whos,默认会展示值的短摘要,如需输出完整值可以执行以下代码:
for var in sort(collect(names(Main))) var_str = string(var) if !startswith(var_str, r"#|_") && isdefined(Main, var) val = getproperty(Main, var) println(rpad(var_str, 15), " 类型:", rpad(typeof(val), 15), " 值:", val) end end
内容的提问来源于stack exchange,提问作者کوروش توسلی
相关产品推荐
相关产品推荐

