2014-09-03 2 views
1

Я пытаюсь построить следующую простую функцию; $ y = A. * x $ с разными значениями параметра A, т.е. A = 0,1,2,3, на одном и том же рисунке. Я знаю, как строить простые функции, т. Е. $ Y = x $, устанавливая x как вектор linspace, определяя x = linspace (0,10,100); и я знаю, что можно использовать команду удержания.Matlab, фигуры и петли

Я думал, что можно просто использовать цикл for, но тогда возникает задача получить график всех перестановок на одной фигуре, т. Е. Мне нужен график y = t, 2 * t, 3 * t, 4 * t на том же рисунке. Моя попытка выглядит следующим образом:

x=linspace(0,10,100); 

%Simple example 
Y=x; 

figure; 
plot(Y); 

%Extension 
B=3; 

F=B*x; 

figure; 
plot(F); 

%Attempt a for loop 
for A= [0,1,2,3] 
G=A*x; 

end 

figure; 
plot(G); 

ответ

5

Это, как я хотел бы построить ваше для примера петли:

figure; 
hold all; 
for A=[0,1,2,3] 
    G=A*x; 
    plot(G); 
end 

figure создает новую фигуру. hold all означает, что последующие графики появятся на том же рисунке (hold all будет использовать разные цвета для каждого графика, а не hold on). Затем мы строим каждую итерацию G внутри цикла.

Вы также можете сделать это без петли. Как и в большинстве случаев в Matlab, удаление цикла должно приводить к повышению производительности.

figure; 
A=[0,1,2,3]; 
G=x'*A; 
plot(G); 

G является внешнее произведение двух векторов x и Ax будучи перенесены в вектор-столбец). plot используется для построения столбцов матрицы 100x4 G.

+0

+1 для объяснения различия между '' hold all'' и '' hold on''. – Nras

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