【问题标题】:Weird array assignment in MATLAB: [x,t]=house_datasetMATLAB 中奇怪的数组赋值:[x,t]=house_dataset
【发布时间】:2014-01-22 10:38:19
【问题描述】:

我正在通过 MATLAB 示例学习使用神经网络。在一个文档样本 (R2012a) 中,有一个奇怪的分配

[x,t] = house_dataset

基本上,house_dataset 是一个 13×506 的二维数组。但是赋值导致两个数组: x,一个 13×506 的 2D 数组,用作我们神经网络的输入; t 一个 1×506 的数组,用作网络的目标。

我不知道这是怎么做到的。它是基于一些我不知道的关于 MATLAB 矩阵的基本知识吗?

我什至将house_dataset 分配给另一个变量

h_dataset = house_dataset;

然后当我尝试这样做时,MATLAB 给出了一个错误:

[x,t] = h_dataset;

错误信息如下:

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

有人知道这是怎么回事吗?

【问题讨论】:

    标签: arrays matlab


    【解决方案1】:

    这是函数的正常行为(而 house_dataset 是工具箱中的众多函数之一)
    函数返回2个值

    function [inputs,targets] = house_dataset
    

    但如果你只是输入

     variable = house_dataset;
    

    它只返回并保存到变量的第一个值,即 [inputs]

    检查非常简单的函数的行为

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

    然后在matlab命令窗口中调用:

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

    如果您只想获得第二个值,请使用以下内容:

    [~,second] = test
    

    【讨论】:

      猜你喜欢
      • 2014-11-04
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多