Как построить график с помощью цикла в Matlab
Необходимо присвоить элементам вектора X значения из указанного диапазона c заданным шагом. Элементам вектора Y присвоить значения функции yi = f(xi). Построить график функции Y(X). В первом столбце дан диапазон, во втором шаг. Будьте добры, подскажите как исправить код.
for x = -3:0.1:5
if (-2*pi<x) && (x<=0)
y1=cos(x-1);
end
if (0< x)&& (x<pi)
y2=cos(x)+1;
end
if (pi<=x) && (x<=2*pi)
y3=sin(x+0.5);
end
Y=[y1 y2 y3];
plot (x,Y)
end
Ответы (1 шт):
Автор решения: Сергей Галкин
→ Ссылка
У вас в y1, y2, y3 на в цикле записывается только по одному значению, в результате вектор Y будет всего из трёх значений, а х будет иметь вообще одно, последнее в цикле, значение, т.е. 5. Кроме того, две последние строки перед end нужно вынести за цикл.
clear,clc
y1=[];
y2=[];
y3=[];
X=-3:0.1:5;
for x = X
if (-2*pi<x) && (x<=0)
y1=[y1 cos(x-1)];
end
if (0< x)&& (x<pi)
y2=[y2 cos(x)+1];
end
if (pi<=x) && (x<=2*pi)
y3=[y3 sin(x+0.5)];
end
end
Y=[y1 y2 y3];
plot (X,Y)
Можно без цикла:
clear,clc
x=-3:0.1:5;
y=((-2*pi<x)&(x<=0)).*cos(x-1)+...
((0<x)&(x<pi)).*(cos(x)+1)+...
((pi<=x)&(x<=2*pi)).*sin(x+0.5);
plot(x,y)
