Как построить график с помощью цикла в Matlab

Рейтинг: 2Ответов: 1Опубликовано: 11.02.2023

Задача

Необходимо присвоить элементам вектора 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)