【问题标题】:How to create array from a function?如何从函数创建数组?
【发布时间】:2015-04-28 09:35:28
【问题描述】:

gdp_p_h 和 p 是向量。但由于某种原因,这不想工作。 我不断收到一条错误消息:“A(I) = X: X must have the same size as I”

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

【问题讨论】:

  • function_array(end+1,:) 呢?
  • 嗨,我的回答有效吗?
  • 是的,它运行良好。非常感谢! =)
  • 那时别忘了接受答案,对未来的“迷路的程序员”很有用! :)

标签: arrays matlab vector octave


【解决方案1】:

当使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 2020-01-13
    • 2017-05-16
    • 2021-10-08
    • 2011-07-06
    相关资源
    最近更新 更多