0

我有一个大数组P,它在每次迭代中都会改变大小和值。我需要能够更改输出数组的标题以匹配给定的迭代,即对于 bin 1.4,我希望输出为 p1.4 或 p14。

任何人都可以帮忙吗?

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

2 回答 2

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

但是你为什么需要这个?考虑使用更智能的容器,例如 containers.Map:

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))

可能更方便。

于 2013-03-14T14:49:44.663 回答
1

怎么样

bins = 1:0.1:2;
for ii = 1: numel(bins)
    bin = bins(ii);
    rows = find( DAT(:,27) > bin );
    p{ii} = DAT(rows,:);
end
于 2013-03-14T14:43:54.207 回答