MATLAB中如何获取存储在变量中的变量的对应值?
用eval解决变量值调用问题
你的代码中,t存储的是变量名的字符串,直接执行print(t(1,:))只会输出字符串A1,而非对应的变量值。要通过eval实现预期效果,需要在调用变量时用eval解析字符串形式的变量名,具体操作如下:
修正后的代码示例
t = ['A1';'A2';'A3';'A4';'A5']; for j = 1:length(t) eval([t(j,:), '= 2*j']); end % 获取并打印A1的值(输出2) disp(eval(t(1,:))) % 若需使用print函数(注意:MATLAB中print主要用于将图形输出到文件,命令行显示建议用disp) eval(['disp(', t(1,:), ')'])
原理说明
t中存储的是变量名的字符串,而非变量本身,直接访问t(1,:)只会返回字符串A1。eval(t(1,:))会将字符串A1解析为对应的变量,从而获取其赋值的数值2。
内容的提问来源于stack exchange,提问作者傅能杰
相关产品推荐
相关产品推荐

