如何从函数创建数组?

时间:2015-04-28 09:35:29

标签: arrays matlab vector octave

gdp_p_h和p是向量。但出于某种原因,这不想工作。 我一直收到错误说:“A(I)= X:X必须和我一样大小”

for entry = gdp_p_h
      function_array(end + 1) = polyval(p,entry)
end;

1 个答案:

答案 0 :(得分:2)

使用polyval时,如果条目是一个数组,它将返回相同大小的内容。

在你的情况下,你使用循环非常糟糕,因此条目将是一个完整的数组,而function_array(end+1)只是一个数字,所以它不能存储数组。

2个选项:

如果你想保持循环(如果里面有更多东西),请正确编写!

我猜你想要:

for ii=1:length(gdp_p_h)
     entry=gdp_p_h(ii);
     function_array(end + 1) = polyval(p,entry);
end

否则,如果这是你在循环中做的唯一事情,你就不需要它。

function_array=polyval(p,gdp_p_h);

将完成这项工作。

在此处了解如何撰写for循环:http://uk.mathworks.com/help/matlab/ref/for.html