2014-01-22 33 views
2

我通過MATLAB樣品與學習神經網絡的工作。在本文檔(R2012a)的一個樣本,有奇怪的分配古怪陣列分配:[X,T] = house_dataset

[x,t] = house_dataset 

基本上,house_dataset是一個13×506二維數組。但分配結果在兩個陣列: X,A 13×506二維數組將被用作輸入到我們的神經網絡; t用作網絡目標的1×506陣列。

我不知道如何做到這一點。它是基於我不瞭解MATLAB矩陣的一些基礎知識嗎?

我甚至指定house_dataset到另一個變量

h_dataset = house_dataset; 

,然後MATLAB給了一個錯誤,當我試着這樣做:

[x,t] = h_dataset; 

錯誤信息上寫着:

>> [x,t] = h_dataset; 
Too many output arguments. 

不任何人都知道這是什麼意思?

回答

2

這是一個功能正常的行爲(和house_dataset是在工具箱中的許多功能之一)
函數返回2個值

function [inputs,targets] = house_dataset 

但如果你只是輸入

variable = house_dataset; 

它返回並保存到變量只有第一個值,即[輸入]

檢查非常簡單的功能行爲

function [out1,out2] = test 
    out1 = 'first out'; 
    out2 = 'second out'; 
end 

,然後在MATLAB命令窗口調用:

[first, second] = test 
first = test 
second = test 

,如果你想獲得僅次於值使用類似:

[~,second] = test