Append for MATLAB



我正在训练一个ANN,我想有不同的训练实例。在每个实例中,我都想找到实际输出和预测输出之间的最大差异。然后我想取所有这些最大值的平均值。

到目前为止,我的代码是:

maximum = []; 
k=1;
for k = 1:5
  %Train network
  layers = [ ...
    imageInputLayer([250 1 1])
    reluLayer
    fullyConnectedLayer(100)
    fullyConnectedLayer(100)
    fullyConnectedLayer(1)
    regressionLayer];
  options = trainingOptions('sgdm','InitialLearnRate',0.1, ...
    'MaxEpochs',1000);
  net = trainNetwork(nnntrain,nnnfluidtrain,layers,options);
  net.Layers
  %Test network
  predictedn = predict(net,nnntest);
  maximum = append(maximum, max(abs(predictedn-nnnfluidtest)));
  k=k+1
end

我的目的是生成一个名为"maximum"的列表,其中包含五个元素(每个ANN训练实例的最大值(,然后我想取平均值。

但是,它一直给我错误:

wrong number of input arguments for obsolete matrix-based syntax

当它尝试追加时。第一个输入是列表,而第二个是 1x1 单曲。

在 MATLAB 中追加是一种本机操作。 您可以通过实际构建一个新向量来附加元素,其中原始向量是输入的一部分。

因此:

maximum = [maximum max(abs(predictedn-nnnfluidtest))];

如果出于某种原因您想以函数形式执行此操作,那么您正在寻找的功能是 cat 这是 concatenate 的缩写形式。 append函数显示在多个工具箱中,但每个工具箱都不能满足您的需求。 cat是您想要的,但您仍然需要提供原始输入向量作为参数的一部分:

maximum = cat(2, maximum, max(abs(predictedn-nnnfluidtest)));

第一个参数是要追加到的轴。 为了尊重您上面执行的代码,您希望列在扩展向量时增加,以便第二个轴,或轴为 2。

最新更新