前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Matlab]变量名与字符串的互相转换

[Matlab]变量名与字符串的互相转换

作者头像
祥知道
发布2020-03-10 15:38:13
7.8K1
发布2020-03-10 15:38:13
举报
文章被收录于专栏:祥的专栏
  1. 情况2: 变量名转化为字符串-inputname()

1. 问题引出

由于Matlabm语言是解释性语言,所以可以在代码运行过程中用字符串做为变量名。有时候我们需要知道变量在程序中的名字,就是将变量名转化为字符串

2 情况1: 用字符串作为变量名-eval()

第一个字符串str_var = 'varNumber' 以字符串 varNumber为变量名声明一个变量

eval()函数可以轻松搞定:

代码语言:javascript
复制
str_var = 'varNumber';
eval( [str_var, '= 10']);

运行后可以看到工作空间多了一个名叫varNumber的变量,值为10

eval()的作用解释起来就是:运行了在Matlab中运行了 [str_var, '= 10'] 这段代码,即就是:varNumber = 10

3. 情况2: 变量名转化为字符串-inputname()

定义一个数值类型变量 numberA = 123;。 现在我需要输出这个变量名,也就是字符串'numberA'

这需要自己写一个函数getVarName(),该函数的输入为要被转化的变量,输出为一个字符串,即就是该变量的变量名。

函数代码( getVarName.m文件 )

代码语言:javascript
复制
%% 将变量的变量名转换为字符串
function [ str_varName ] = getVarName( var )

    str_varName = sprintf('%s', inputname(1));

end

测试代码:

代码语言:javascript
复制
numberA = 123;
str_varName = getVarName(numberA);
disp(['变量的名字为: ' ,str_varName])
class(str_varName)

Matlab里面对其进行了解释,这个需求虽然小众,但还是有用的,比如我要把所有的变量和输入打印到文件中(将变量逆向转化为m文件,有时用m文件mat文件更容易查询数据的问题

Description

This command can be used only inside the body of a function.

inputname(argnum) returns the workspace variable name corresponding to the argument number argnum. If the input argument has no name (for example, if it is an expression instead of a variable), the inputname command returns the empty string (”)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 问题引出
  • 2 情况1: 用字符串作为变量名-eval()
  • 3. 情况2: 变量名转化为字符串-inputname()
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档