MATLAB中奇怪的数组赋值:[x,t] = house_dataset

时间:2014-01-22 10:38:19

标签: arrays matlab

我正在通过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.

有谁知道这是怎么回事?

1 个答案:

答案 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