如何解决 Matlab 中的 "Conversion to double from struct is not possible" 错误

How to solve "Conversion to double from struct is not possible" error in Matlab

我正在尝试 运行 下面的代码,但我不断收到“无法从 struct 转换为 double”错误。如果您能帮助我解决代码中的问题,我将不胜感激。附上错误截图。

H = [1,2,3, 4, 5, 6, 7, 8, 9, 10];

ratio = [.6 .2 .2; .7 .15 .15; .8 .1 .1];

result = zeros(30,1);

counter = 1;

load('inputsKonyaAccesshistoricalTransposeAnn.mat');

load('reanalizKonyaprecipitationhistorical.mat');

I1= inputsKonyaaccessTransposehist';

T= reanalizKonyahistprecipitation';

xdata2=(1:size(I1,1))';

dasddas = bsxfun(@(x,y) interp1(y(~isnan(x)),x(~isnan(x)),y),I1,xdata2);

I = dasddas;

for h_counter = 1:length(H)

    for r_counter =  1:3

        result(counter) = train_netloop(H(h_counter),ratio(r_counter,:),I,T);

        counter = counter + 1;

    end
end

嗯,显然 train_netloop() 的输出是一个结构,您试图将其保存在用 zeros() 创建的数组中,即 double-array。由于结构不是双精度结构,因此这显然行不通。尝试 result = cell(30, 1)result{counter} = train_netloop(),即将结果存储在单元格中。