如何在Matlab中显示对象或变量的名称与取值?
在MATLAB中显示变量名称与取值的实用方法
嘿,我来帮你解决这个问题!先分两部分来拆解:显示变量取值是很直接的,而显示变量名称因为MATLAB的特性需要点小技巧,下面给你详细说明:
一、显示变量的取值
这部分超简单,有两种常用方式:
- 直接在命令行敲变量名
target_position然后回车,MATLAB会直接输出它的取值 - 用
disp(target_position)函数,同样会打印出变量的内容,适合在脚本里批量输出
二、显示变量的名称
MATLAB的变量本身不会存储自己的名称(毕竟它只是内存地址的一个引用),所以得用下面几种方法来实现:
方法1:用inputname函数(适合函数内获取输入变量名)
如果你把变量传入自定义函数,inputname能帮你拿到它的原始名称,示例代码如下:
function displayVarInfo(inputVar) % 获取输入变量的名称 varName = inputname(1); % 输出名称和取值 fprintf('变量名称:%s\n', varName); fprintf('变量取值:%s\n', num2str(inputVar)); end % 测试一下 obj = [5, 15]; % 先给对象赋值 target_position = obj; displayVarInfo(target_position);
运行后会输出:
变量名称:target_position
变量取值:5 15
方法2:用who/whos查看工作区变量名
如果只是想查看当前工作区里的所有变量(包括target_position),直接在命令行输入:
who:只输出所有变量的名称列表whos:输出变量的名称、大小、数据类型等详细信息
比如输入who后,会显示:
Your variables are:
obj target_position
方法3:手动关联名称与取值(脚本内临时使用)
如果只是在脚本里需要临时绑定变量名和取值,可以用结构体手动存储:
obj = [5, 15]; target_position = obj; % 手动创建映射 varMap = struct('name', 'target_position', 'value', target_position); disp(['变量名称:', varMap.name]); disp(['变量取值:', num2str(varMap.value)]);
这样就能轻松实现你想要的显示变量名称和取值的需求啦~
内容的提问来源于stack exchange,提问作者CaroleGE




