转载:matlab 字符串和变量名互换
原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自 祥的博客
原文鏈接:https://blog.csdn.net/humanking7/article/details/80628757
1. 問(wèn)題引出 2 情況1: 用字符串作為變量名-eval() 3. 情況2: 變量名轉(zhuǎn)化為字符串-inputname()由于Matlab的m語(yǔ)言是解釋性語(yǔ)言,所以可以在代碼運(yùn)行過(guò)程中用字符串做為變量名。有時(shí)候我們需要知道變量在程序中的名字,就是將變量名轉(zhuǎn)化為字符串。
2 情況1: 用字符串作為變量名-eval()
用eval()函數(shù)可以輕松搞定:
str_var = 'varNumber'; eval( [str_var, '= 10']);運(yùn)行后可以看到工作空間多了一個(gè)名叫varNumber的變量,值為10。
eval()的作用解釋起來(lái)就是:運(yùn)行了在Matlab中運(yùn)行了 [str_var, ‘= 10’] 這段代碼,即就是:varNumber = 10。
3. 情況2: 變量名轉(zhuǎn)化為字符串-inputname()
這需要自己寫(xiě)一個(gè)函數(shù)getVarName(),該函數(shù)的輸入為要被轉(zhuǎn)化的變量,輸出為一個(gè)字符串,即就是該變量的變量名。
函數(shù)代碼( getVarName.m文件 )
%% 將變量的變量名轉(zhuǎn)換為字符串 function [ str_varName ] = getVarName( var )str_varName = sprintf('%s', inputname(1));end測(cè)試代碼:
numberA = 123; str_varName = getVarName(numberA); disp(['變量的名字為: ' ,str_varName]) class(str_varName)Matlab里面對(duì)其進(jìn)行了解釋,這個(gè)需求雖然小眾,但還是有用的,比如我要把所有的變量和輸入打印到文件中(將變量逆向轉(zhuǎn)化為m文件,有時(shí)用m文件比mat文件更容易查詢(xún)數(shù)據(jù)的問(wèn)題
)
DescriptionThis 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 (”)總結(jié)
以上是生活随笔為你收集整理的转载:matlab 字符串和变量名互换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 兆观毫米波监护仪亮相CMEF 开创养老监
- 下一篇: 学习笔记 Keras:常见问题