2013-03-14 72 views
0

我有大型数组P,它在每次迭代中更改大小和值。我需要能够改变我的输出数组的标题以匹配给定的迭代,即对于bin 1.4我希望输出为p1.4或p14。更改for循环中每次迭代时的变量名称MATLAB

任何人都可以帮忙吗?

for bin = 1:0.1:2; 
    rows = find(DAT(:,27) > bin); 
    p{bin} = DAT(rows,:); 
end 
+0

'fprintf('p%.1f \ n',bin);'? – 2013-03-14 14:39:32

+0

啊,变量名... – 2013-03-14 14:43:30

回答

4

如果我理解正确的,你的代码是

for bin = 1:0.1:2; 
    rows = find(DAT(:,27) > bin); 
    current_p = DAT(rows,:); 
    eval(sprintf('p%0.f=current_p;', bin * 10)); 
end 

但是,为什么你需要这个?考虑使用像容器这样的智能容器。地图:

p = containers.Map('KeyType', 'double', 'ValueType', 'double')  
for bin = 1:0.1:2 
    rows = find(DAT(:,27) > bin); 
    p(bin) = DAT(rows,:); 
end 
disp(p(1.2)) 

它可能更方便。

+0

都很好。谢谢 – mallow 2013-03-14 14:58:29

1

怎么样

bins = 1:0.1:2; 
for ii = 1: numel(bins) 
    bin = bins(ii); 
    rows = find(DAT(:,27) > bin); 
    p{ii} = DAT(rows,:); 
end 
相关问题