我正在通过MATLAB样本学习神经网络。在文档的一个样本(R2012a)中,有一个奇怪的任务
[x,t] = house_dataset
基本,house_dataset是13×506 2D阵列。但是赋值会产生两个数组: x,一个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.
有谁知道这是怎么回事?
答案 0 :(得分:2)
这是函数的正常行为(而house_dataset是工具箱中的众多函数之一)
函数返回2个值
function [inputs,targets] = house_dataset
但如果您只是输入
variable = house_dataset;
它只返回并保存到变量第一个值[input]
检查非常简单的函数的行为
function [out1,out2] = test
out1 = 'first out';
out2 = 'second out';
end
然后在matlab命令窗口中调用:
[first, second] = test
first = test
second = test
如果您只想使用第二个值,请使用以下内容:
[~,second] = test