概述
原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接:https://blog.csdn.net/humanking7/article/details/80628757
- 1. 问题引出
- 2 情况1: 用字符串作为变量名-eval()
- 3. 情况2: 变量名转化为字符串-inputname()
1. 问题引出
由于Matlab
的m语言
是解释性语言,所以可以在代码运行过程中用字符串
做为变量名。有时候我们需要知道变量在程序中的名字,就是将变量名
转化为字符串
。
2 情况1: 用字符串作为变量名-eval()
第一个字符串
str_var = 'varNumber'
以字符串varNumber
为变量名声明一个变量
用eval()
函数可以轻松搞定:
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
文件 )
%% 将变量的变量名转换为字符串
function [ str_varName ] = getVarName( var )
str_varName = sprintf('%s', inputname(1));
end
测试代码:
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 (”)
最后
以上就是大胆金毛为你收集整理的[Matlab]变量名与字符串的互相转换1. 问题引出2 情况1: 用字符串作为变量名-eval()3. 情况2: 变量名转化为字符串-inputname()的全部内容,希望文章能够帮你解决[Matlab]变量名与字符串的互相转换1. 问题引出2 情况1: 用字符串作为变量名-eval()3. 情况2: 变量名转化为字符串-inputname()所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复