You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab工作区如何按关键词筛选并查看特定变量的值?

嘿,我之前在处理大量Matlab变量的时候也遇到过这个问题,给你分享几个好用的解决办法,既能筛选出关键词匹配的变量,还能直接查看它们的值:

方法1:结合who与遍历查看变量名和值

首先用who搭配通配符筛选出包含目标关键词的变量名列表,再通过循环逐个查看对应的值:

% 筛选所有名称包含"Add"的变量
matching_var_names = who('*Add*');

% 遍历输出每个变量的名称和值
for idx = 1:length(matching_var_names)
    var_name = matching_var_names{idx};
    fprintf('变量名称:%s\n', var_name);
    fprintf('变量值:\n');
    disp(eval(var_name));
    fprintf('--------------------------\n');
end

这里的通配符*可以灵活调整:比如要匹配以"Add"开头的变量就用'Add*',匹配以"Add"结尾的就用'*Add'。

方法2:用whos获取更全面的变量信息

whos比who能获取更多变量属性(比如类型、大小),同样支持通配符筛选,适合需要了解变量更多细节的场景:

% 获取包含"Add"的变量详细信息
matching_var_info = whos('*Add*');

% 遍历输出
for idx = 1:length(matching_var_info)
    var_detail = matching_var_info(idx);
    fprintf('变量名:%s | 类型:%s | 大小:%s\n', ...
        var_detail.name, var_detail.class, mat2str(var_detail.size));
    fprintf('变量值:\n');
    disp(eval(var_detail.name));
    fprintf('--------------------------\n');
end
方法3:更安全的无eval写法(推荐)

eval虽然便捷,但在变量名复杂时可能有风险,用evalin直接从基础工作区获取变量会更稳妥:

% 从基础工作区筛选匹配的变量名
matching_vars = evalin('base', 'who(''*Add*'')');

% 逐个获取变量值并输出
for idx = 1:length(matching_vars)
    var_name = matching_vars{idx};
    var_value = evalin('base', var_name);
    fprintf('变量名:%s\n', var_name);
    fprintf('变量值:\n');
    disp(var_value);
    fprintf('--------------------------\n');
end
额外小技巧:用Matlab图形界面快速筛选

如果不想写代码,直接在Matlab的工作区浏览器右上角找到搜索框,输入关键词"Add",就能实时筛选出匹配的变量,点击变量就能直接查看它的值,非常方便!

内容的提问来源于stack exchange,提问作者Sack11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:30:14