加入两个字符串以获取变量名称及其内容

时间:2016-12-01 11:51:21

标签: string matlab

我有:

AB_xy = [4, 3, 5, 9, 10]

我希望通过将两个单独的字符串中的名称组合起来来访问AB_xy元素:

['AB' '_xy'](1)

我希望这可以返回4 AB_xy(1),但这不起作用。建议?

2 个答案:

答案 0 :(得分:1)

如果您还包含索引

eval可以使用
AB_xy = [4, 3, 5, 9, 10];
eval(['AB', '_xy(1)'])
ans =
     4

但总体而言 eval should be avoided ,因为还有其他alternatives

也许您可以考虑将AB作为字段xy的结构。

AB.xy = [4, 3, 5, 9, 10];

并使用dynamic field reference

str = 'xy';
AB.(str)(1)
ans =
     4

答案 1 :(得分:0)

这听起来像eval问题。

s = strcat('AB', '_xy', '(', '1', ')')
eval(s)

当然,只需将strcat中的字符串替换为包含要连接的字符串的变量。

我完全赞同@BillBokeey。 eval通常是代码气味。