如何使用for循环matlab调用顺序变量?

HCA*_*CAI -2 matlab

我有一堆变量称为length_act_iwhere

i=1:6
Run Code Online (Sandbox Code Playgroud)

我想按顺序调用每一个作为for循环的一部分,但这不起作用:

for i=1:6
    I={['length_act_',num2str(i)]};
    subplot(3,2,i)
    [f x]=hist(I,1:2:5);
    bar(x,f./trapz(x,f),'barwidth',0.5,'r');
end
Run Code Online (Sandbox Code Playgroud)

最有效的方法是什么?

问候,

Eit*_*n T 5

eval在循环中使用:

eval(['I = length_act_', num2str(i)]);
Run Code Online (Sandbox Code Playgroud)

专业提示:
eval命令通常速度慢且效率低,而是使用数组.在你的情况下,似乎你的每个"length_act_i"变量都是一个向量,所以你应该使用一个单元格数组.例如,调用它length_act并像这样设置它:

length_act = {length_act_1, length_act_2, length_act_3, ...};
Run Code Online (Sandbox Code Playgroud)

然后使用以下方法访问数组中的每个单元格:

for i = 1:length(length_act)
    I = length_act{i};

    ...
end
Run Code Online (Sandbox Code Playgroud)

此外,建议不要使用"i"和"j"作为变量的名称.