用不同的名称调用MATLAB变量

用不同的名称调用MATLAB变量,matlab,variable-assignment,Matlab,Variable Assignment,我在MATLAB中有一组变量,它们的名称是A1,A2,…,A100。我还有一个函数,可以生成1到100之间的随机整数 如果随机整数是n,我如何调用关联的变量An,而不需要创建100个If语句或切换案例?首先,使用这样的名称是不好的做法A(1),A(2)更好 我不知道变量是如何存储的,但如果可以将它们存储为数组,您肯定应该这样做 如果没有,您可以使用 使用数组。是的,对于我提出的简单示例,只需创建A=[A1;A2;…A100]。但我的问题是如何用不同的名称调用MATLAB变量。作为一个更复杂的例子

我在MATLAB中有一组变量,它们的名称是
A1
A2
,…,
A100
。我还有一个函数,可以生成1到100之间的随机整数


如果随机整数是
n
,我如何调用关联的变量
An
,而不需要创建100个If语句或切换案例?

首先,使用这样的名称是不好的做法<代码>A(1),A(2)更好

我不知道变量是如何存储的,但如果可以将它们存储为数组,您肯定应该这样做

如果没有,您可以使用


使用数组。是的,对于我提出的简单示例,只需创建
A=[A1;A2;…A100]
。但我的问题是如何用不同的名称调用MATLAB变量。作为一个更复杂的例子,随机数可以是一个随机字符串
'str'
,它应该依次调用
Astr
。完全改变你的方法,如果尺寸允许,将数据存储在矩阵(或数组)中,或者如果你想将数据与某些元信息配对,则将数据存储在单元格数组中,或者最后存储在结构中,例如,使用字段名。谢谢大家的评论。这不是一个最佳方法的问题(毫无疑问,数组是最佳的),而是一个是否存在其他方法的问题。对不起,我不清楚。我很确定这应该是可行的:
A_mat=arrayfun(@(x)eval(['A',num2str(x)]),1:100)
如果你想把它转换成一个单独的数组。+1我非常同意像
A1
A2
这样的名字不应该被使用。如果有人能告诉我为什么答案是-1,我将不胜感激。如果你认为答案不好,请让我知道并解释原因。如果你也能提供更好的解决方案,那就太好了!这样我/我们可能会学到一些东西。。。谢谢非常感谢Robert,
eval(['A',num2str(idx)])
正是我要找的。@dis疑,总是很乐意帮忙=)
eval(['A', num2str(idx)])