单元格数组初始化

时间:2011-04-05 15:16:14

标签: matlab

我有一个元素阵列,元素为22 * 22,18 * 18 * 6,14 * 14 * 6,10 * 10 * 6,6 * 6 * 6.你可以帮我初始化它

更新:

s{l(:,:,feature_map)=zeros(22,22),zeros(18,18,6),zeros(14,14,6),zeros(10,10,6),zeros(6*6*6)

通过使用上面的命令,单元格数组的第一个元素是空的。所有其他元素都有22 * 22 * 6个元素。它会在卷积中产生问题

代码是:

num_of_maps_in_layer{1}=1;
for i=1:3
    num_of_maps_in_layer{i+1}=6; 
end
num_of_maps_in_layer{5}=6; 

for l=2:5
    for feature_map=1:num_of_maps_in_layer{l}
        sensitivity{l}(:,:,feature_map)=zeros(22,22),zeros(18,18,6),zeros(14,14,6),zeros(10,10,6),zeros(6*6*6)
    end
end

3 个答案:

答案 0 :(得分:2)

我认为这就是你想要做的事情:

sensitivity = {zeros(22,22),...
               zeros(18,18,6),...
               zeros(14,14,6),...
               zeros(10,10,6),...
               zeros(6,6,6)};

这会创建一个5个元素cell array sensitivity。第一个单元格包含一个22乘22的零数字数组,第二个单元格包含一个18×18乘6的零数字数组等。

答案 1 :(得分:1)

不确定你想要用什么来初始化矩阵,但是如果你只是想要声明它们并且不关心它们包含什么,你可以做到

ones(22, 22)
ones(18,18,6)
ones(14,14,6)
...

或者您可以将zeros函数用于0填充矩阵。

答案 2 :(得分:1)

通过任何改变,你的意思是这样的初始化:

1> ca= {22* 22, 18* 18* 6, 14* 14* 6, 10* 10* 6, 6* 6* 6}
ca =
{
  [1,1] =  484
  [1,2] =  1944
  [1,3] =  1176
  [1,4] =  600
  [1,5] =  216
}