2015-03-30 241 views
-1
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矩阵dimension.But所有的start_hidden_​​layer值都必须保存。如何解决这个问题呢?在赋值A(:) = B中,A和B中元素的数量必须相同

首先hidden_​​layer> 1个

GK(i)是对于实施例5,3的整数值,8

+0

对于一个好问题,代码片段必须有意义。最简单的方法是为算法中使用的所有变量定义样本值。 – Setsu 2015-03-30 18:16:14

回答

1

由于您在每次迭代调用rand具有不同的矩阵大小,则不能将结果保存到一个正常的矩阵。您需要使用细胞矩阵存储结果,这样的:在电池阵列以及如何使用它们,请参阅this Mathworks help doc

%//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 

更多。

+0

感谢您的回答。但是如果我们调用start_hidden_​​layer单元格;如何使用matris值?答:我找到了。我= 1,2 ..非常感谢。 – Adrian 2015-03-30 18:27:03

+0

@Adrian单元格矩阵都与正常的数值矩阵相似和不同。尽管数值矩阵很好地转化为线性代数中的矩阵,但单元矩阵更多地与多维数组的编程概念相关联。查看它们的一个简单方法是将它们视为可以容纳任何东西的篮子:整数,矩阵,结构,对象等等。请参阅[本文](http://www.mathworks.com/help/matlab/matlab_prog/access-data-in-a-cell-array.html)了解如何使用单元格数据。 – Setsu 2015-03-30 18:30:36

相关问题