Matlab-从文件加载的数组中检索单个单元格以用于函数

Matlab-从文件加载的数组中检索单个单元格以用于函数,matlab,Matlab,XTrain是从文件加载的浮点元素的向量。然后,脚本执行一个函数来利用文件内容 文件元素的摘录如下所示 128.3000 127.4700 127.8800 我可以使用命令行代码XTrain(1,1)检索单个单元格值 以下是我的函数,如果我在测试行上切换注释,会导致错误: function loss = LS(XTrain) a = [1 2 3 4] for i=1:150, %test = XTrain(1,1) te

XTrain是从文件加载的浮点元素的向量。然后,脚本执行一个函数来利用文件内容

文件元素的摘录如下所示

  • 128.3000
  • 127.4700
  • 127.8800
我可以使用命令行代码XTrain(1,1)检索单个单元格值

以下是我的函数,如果我在测试行上切换注释,会导致错误:

    function loss = LS(XTrain)

      a = [1 2 3 4] 

      for i=1:150,
        %test = XTrain(1,1)
        test = a(1,1)
      end
      loss = test;
    end
以下是错误:

使用Func时出错(第6行) 输入参数不足

运行时出错(第64行) evalin('caller',[script';'])

加载错误(第12行) 运行函数

问题是否由文件数据的浮点类型引起

文件数据 1 65.78 112.99 2 71.52 136.49 3 69.40 153.03 468.22 142.34

脚本文件:

DATA = dlmread('xtraindata.txt')
XTrain = DATA(1:150,2:2)
run Func
Func文件:

function lret = Func(XTrain)
lret = XTrain(1,1)
end
你应该替换

run Func

如果您在Func.m中定义了Func,而“run Func”不在Func.m中,您也可以删除该行

function lret = Func(XTrain)

MATLAB似乎认为XTrain是一个函数。您确定要传入向量吗?我运行了您提供的代码,即使您没有将XTrain传递给LS(),也没有错误。只有在取消注释第6行时才会出现错误。如果您取消对它的注释,那么正如MrAzzaman所提到的,您必须传递一个参数。DATA=dlmread('xtraindata.txt')XTrain=DATA(1:150,2:2)%I只想加载第二列中的所有浮点值。您能在帖子中输入完整的代码吗?或者至少是脚本文件的重要部分?这可能有助于我们确定发生了什么。我已经编辑了这个问题,提供了脚本和函数文件的全部内容。当做
function lret = Func(XTrain)