function result = results()
i = [1,5];
for repeats = 1:1:7
ratio_counter = 1;
for ratio = i
[a,~] = main(75,100,ratio,1000);
output(repeats) = a.food;
tabled_output(ratio_counter,repeats) = output
ratio_counter = ratio_counter + 1;
end
end
result = tabled_output
end
尝试获得7组重复结果,但收到以下错误:
Assignment has more non-singleton rhs dimensions than non-singleton
subscripts
Error in results (line 16)
tabled_output(ratio_counter,repeats) = output
我做错了什么?
答案 0 :(得分:2)
作为一般提示,您可以使用matlab GUI界面逐行通过代码来调试这样的东西。 (单击代码行旁边的短划线以设置断点)。
您的具体问题似乎是
output(repeats) = a.food;
这会创建output(1)
(与a.food相同的维度),然后在下一个循环中追加output(2)
,创建一些更大的矩阵对象。
此扩展output
对象的后果是
tabled_output(ratio_counter,repeats) = output
变得胡说八道。 LHS需要一个特定大小的物体,你需要一个更大的物体。
这可以通过
修复tabled_output(ratio_counter,repeats) = output(repeats);
或
output = a.food;
取决于您的总体要求。后者的内存效率更高