在赋值A(:) = B中,A和B中的元素数必须相同

时间:2015-03-30 17:37:11

标签: matlab variable-assignment

    if (hidden_layer>1)
        for i =1 :hidden_layer 
       start_hidden_layer(i) = rand([gk(i+1),(gk(i)+1)])-0.5 ; 
        end
    end

嗨朋友们。 我知道每次迭代都改变了start_hidden_​​layer矩阵维度。但是必须保存所有start_hidden_​​layer值。如何解决这个问题?

首先是hidden_​​layer> 1

gk(i)是整数值,例如5,3,8

1 个答案:

答案 0 :(得分:1)

由于您在每次迭代时使用不同的矩阵大小调用rand,因此无法将结果保存到普通矩阵中。您需要使用单元格矩阵来存储结果,如下所示:

%//preallocate the cell array
start_hidden_layer = cell(1, hidden_layer);

for i = 1:hidden_layer
    start_hidden_layer{i} = rand([gk(i+1), (gk(i)+1)]) - 0.5; 
end

有关单元阵列以及如何使用它们的更多信息,请参阅this Mathworks help doc