2015-03-30 56 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

相關問題