個別の変数ではなく、MATLAB で "セル配列" と呼ばれるデータ構造にする必要があります。値がすべてスカラー値の場合は、「通常の」配列、別名行列を使用することもできます。
準備のために、あなたはそうします
R=56;
N=51;
W=[3 5 6 8 13 17 25 25 51];
R2=N; %//why that? are you sure?
RR = floor(R./W).*W;
%// So if you need this exception:
RR(1) = N;
%// or not, is up to you.
rows = cumsum(RR./W);
%//Now, whatever vec2mat returns, could be more than a simple scalar, so for AA we use
%//a cell array.
AA = repmat({[]}, 1, length(W));
offset=0;
for x=1:length(W)
increment=RR(i)
[AA{x},padded]=vec2mat(vec(offset+1:offset+increment),W(x));
offset = offset+increment;
end
%%// Your AA values are now as well shifted by 1, so AA{1} is your old A2, and so on.
編集:
Dan が示唆するように、ベクトル化を見つけRR
て使用します。しかし、創造物をうまくベクトル化できるとは思えません。row
AA
編集2:
ダンのソリューションを私のものに含めました。の値が大きい場合、パフォーマンスが大幅に向上する可能性がありますlength(W)
。
編集3:
古い質問に対する私のコードは、概念についてのアイデアを提供するはずです。自分で新しいパーツに実装してみることができます。うまくいかなかったときは、正確に何がうまくいかないのかを尋ねることができます。