使用变量名称的数据循环技术?

时间:2014-02-24 06:31:05

标签: matlab loops signals nested

这是我的代码程序,x是我的数据,我有另一个数据名称,如af4,f7和f8 ..如何在我的程序上执行循环技术,以便x将自动更改为af4 ,那么f7和Matlab中的最后一个f8?

x=af3;
d = fdesign.lowpass('Fp,Fst,Ap,Ast',4,5,1,40,128);
Hd = design(d,'butter');
fvtool(Hd);
y_delta = filter(Hd,x);

2 个答案:

答案 0 :(得分:1)

如何生成这些变量af4af7af8?如果您可以将它们创建为单元格数组中的单元格或结构中的字段 - 您的生活会更容易。

如果您无法控制变量,可以使用eval

varNames = {'af3', 'af4', 'af7', 'af8' }; % as strings
for vi=1:numel(varNames)
    x = eval( varNames{vi} ); % here''s the trick
    % continue here with x...
end

但请注意,它是extremely unrecomanded to use eval

答案 1 :(得分:1)

我认为这是你可以使用的:

xCell = {af3, af4, af7, af8};

for xi = 1:nnumel(xCell)
     x = xCell{xi};
     % do what you want to do with x
end