1 三维数组中的各个为也是二维数组,所以赋值可以直接赋即可!
假设A是三维数组,B是二维数组
B=A(:,:,1),B=A(:,:,2),B=A(:,:,3)分别把A的三维中的一、二、三维赋给B。
2 matlab操作比较简单,用一个循环即可,控制其列
>> a=rand(5,5)
a =
0.9501 0.7621 0.6154 0.4057 0.0579
0.2311 0.4565 0.7919 0.9355 0.3529
0.6068 0.0185 0.9218 0.9169 0.8132
0.4860 0.8214 0.7382 0.4103 0.0099
0.8913 0.4447 0.1763 0.8936 0.1389
>> M=sum(a)
M =
3.1654 2.5032 3.2437 3.5620 1.3727%%sum得到的结果就是每列之和
>> for i=1:5
a(:,i)=a(:,i)/M(i);%%然后给每列除以其之和,a(:,1)表示第一列,a(:,2)表示第二列,以此类推
end
>> a
a =
0.3002 0.3045 0.1897 0.1139 0.0422
0.0730 0.1824 0.2441 0.2626 0.2571
0.1917 0.0074 0.2842 0.2574 0.5924
0.1535 0.3281 0.2276 0.1152 0.0072
0.2816 0.1777 0.0543 0.2509 0.1012
1, 直接赋值 b= A(:,:,1) ,试了一下可以。
2. 先用次sum求每行元素和,因为要求 “每个元素都除以每列之和”,所以得用1次for循环
B(:)=A(:,:,:);这样一个语句就搞定啦!
B = A(:,:,1)
300块钱 帮你做