例の結果
araArray =
Columns 1 through 23:
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3
10 10 10 10 20 20 20 20 30 30 30 30 40 40 40 40 50 50 50 50 10 10 10
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 200 200 200
Columns 24 through 46:
4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2
10 20 20 20 20 30 30 30 30 40 40 40 40 50 50 50 50 10 10 10 10 20 20
200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 300 300 300 300 300 300
Columns 47 through 60:
3 4 1 2 3 4 1 2 3 4 1 2 3 4
20 20 30 30 30 30 40 40 40 40 50 50 50 50
300 300 300 300 300 300 300 300 300 300 300 300 300 300
ソース
下のテキストをコピペして,mergeNList.mに格納してください
function [listA] = mergeNList(listL);
nList = size(listL, 2);
nData = zeros(1, nList);
nBefore = ones(1, nList);
nAfter = ones(1, nList);
nTotalData = 1;
for loop = 1:nList
nData(loop) = size(listL{loop}, 2);
for loop2 = 1:nList
if (loop < loop2)
nBefore(loop2) = nBefore(loop2) * nData(loop);
elseif (loop > loop2)
nAfter(loop2) = nAfter(loop2) * nData(loop);
endif
endfor
nTotalData = nTotalData * nData(loop);
endfor
listA = zeros(nList, nTotalData);
for loop = 1:nList
listA(loop, :) = reshape(ones(nBefore(loop), 1) * reshape(listL{loop}' * ones(1, nAfter(loop)), 1, nData(loop) * nAfter(loop)), 1, nTotalData);
endfor