Matlab数组操作
三维数组的写入
将多个二维数组写入三维数组中
%原始二维数组
a1=[0.25 0.25 0.25 0.25 0.23;
0.25 0.25 0.11 0.27 0.27;
0.25 0.21 0.12 0.22 0.25;
0.25 0.25 0.25 0.22 0.25;
0.23 0.24 0.25 0.29 0.27;];
a2=[0.25 0.25 0.25 0.25 0.23;
0.25 0.25 0.11 0.18 0.27;
0.25 0.21 0.65 0.22 0.25;
0.23 0.25 0.25 0.22 0.25;
0.23 0.24 0.25 0.12 0.22;];
a3=[0.25 0.25 0.25 0.25 0.18;
0.25 0.25 0.64 0.27 0.27;
0.25 0.25 0.12 0.31 0.25;
0.25 0.25 0.25 0.33 0.25;
0.29 0.25 0.25 0.29 0.22;];
%按顺序写入到一个三维数组中
for i=1:5
for j=1:5
A(i,j,1)=a1(i,j);
end
end
for i=1:5
for j=1:5
A(i,j,2)=a2(i,j);
end
end
for i=1:5
for j=1:5
A(i,j,3)=a3(i,j);
end
end
%查看三维数组结果
A(:,:,:)
三维数组操作
*实现_如果与其他纵维度上行列位置相同位置的数值相同,则进行相加处理,否则保持原值 *
思路:将原三维数组写入一个新的三维数组,将处理后的数值写入新的数组,原三维数组不变,方便后续重复读取;对纵维不同、行列相同位置的数值进行遍历对比。
代码展示
B(:,:,:)=A(:,:,:)
%数组遍历
for m=1:3
for k=1:3
for i=1:5
for j=1:5
if k==m %纵维相同,数值不变
B(i,j,m)=B(i,j,m);
else
if A(i,j,m)==A(i,j,k)
B(i,j,m)=B(i,j,m)+A(i,j,k);%数组相同,相加处理
end
end
end
end
end
end
结果显示