0

P反復ごとにサイズと値が変化する大きな配列があります。指定された反復に一致するように出力配列のタイトルを変更できる必要があります。つまり、ビン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

しかし、なぜこれが必要なのですか?container.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 に答える