本帖最后由 xiaohuangzz 于 2012-10-16 21:14 编辑
有任意一个二维数组如
A=[3 4 5 4;
3 4 5 3;
2 3 4 6]
与任意一个三维数组
B(:,:,1)=[5 3 6 7;
3 4 6 4;
2 5 3 6]
B(:,:,2)和B(:,:,3)也是类似的3*4数组。
希望求得新的三维数组C如下:
C(:,:,1)=[3 4 5 4;
5 3 6 7;
3 4 6 4;
2 5 3 6]
C(:,:,2)和C(:,:,3)也是类似的4*4数组。
也就是说A的第一行叠加到B(:,:,1)成为C(:,:,1)的第一行
A的第二行叠加到B(:,:,2)成为C(:,:,2)的第一行
A的第三行叠加到B(:,:,3)成为C(:,:,3)的第一行
本来想把A写成一个三维数组A(1,:,:)=A(:,:)用for i=1:3
C(:,:,i)=[A(1,:,i)',B(:,:,i)']
但好像通不过啊.求助v
错误的是最后一个for语句
% Determiner the arcs a
Rrr =[1 4 4 4;
2 8 8 8;
1 1 1 1]
I=[4;
8;
2];
for i=1:3
s=0;
for k=1:4
s=s+Rrr(i,k);
if s<=I(i)
FirstLineA(1,k,i)=1;
FirstLineCumR(1,k,i)=s;
else
FirstLineA(1,k,i)=0;
FirstLineCumR(1,k,i)=0;
end
end
for j=1:4
s=0;
for k=j:4
s=s+Rrr(i,k);
if s<=I(i)
OthersA(j,k,i)=1;
OthersCumR(j,k,i)=s; % cumulated demand if arc a exists
else
OthersA(j,k,i)=0;
OthersCumR(j,k,i)=0;
end
end
end
for i=1:3
bb(:,:,i)=[FirstLineA(:,:,i)',OthersA(:,:,i)']';
aa(:,:,i)=[bb(:,:,i),bb(:,4,i)]
end
%把第一行数据和其它行数据合并,
end