2014-09-15 2 views
0

Я начинаю программировать в matlab, поэтому я написал эту небольшую программу, чтобы увидеть ее в действии, и теперь у меня есть небольшая проблема, потому что я не уверен, почему она не работает.Рисование строки в графике matlab

x = zeros(50); 
squared = zeros(50); 
cubed = zeros(50); 

for num = 1:50 
    x(num) = num; 
    squared(num) = num^2; 
    cubed(num) = num^3; 
end 

% calculate the mean 
mean_cubed = mean(cubed); 

% clear screen and hold the plot 
clf; 
hold on 
    plot(x, squared); 
    plot(x, cubed); 
    plot([0, 50], [mean_cubed, mean_cubed]); 
hold off 

Основная программа при запуске программы я получаю сообщение об ошибке:

Error using plot 
Vectors must be the same lengths. 

Error in basic_mathlab_plotting_2 (line 20) 
    plot([0, limit], [mean_cubed, mean_cubed]); 

Я думаю, что размер вектора являются одинаковыми, поэтому я не знаю, что это неправильно.

Спасибо !!!

ответ

2

В первых строках, вы, вероятно, имел в виду

x = zeros(1,50); 
squared = zeros(1,50); 
cubed = zeros(1,50); 

Обратите внимание, что zeros(50) эквивалентно zeros(50,50) и поэтому он возвращает матрицу 50х50.

Кроме того, эти линии и петля for могут быть заменены

x = 1:50; 
squared = x.^2; 
cubed = x.^3; 

Это относится важная концепция vectorization, используя element-wise power операции.

+0

Спасибо, человек, теперь все работает! – depecheSoul

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