2015-04-28 3 views
0

gdp_p_h и p - векторы. Но по какой-то причине это не хочет работать. я получаю сообщение об ошибке сказав: «А (I) = X: X должны иметь такой же размер, как я»Как создать массив из функции?

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

, что о 'function_array (конец + 1 :)'? –

+0

Привет, ответил ли мой ответ? –

+0

Да, это сработало отлично. Огромное спасибо! =) – lioli

ответ

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 

Else, если это единственное, что вы делаете внутри цикла, вы просто не нужно.

function_array=polyval(p,gdp_p_h); 

выполнит эту работу.


Узнайте, как писать for петли здесь: http://uk.mathworks.com/help/matlab/ref/for.html

Смежные вопросы