高手解释一下这段MATLAB程序,(有效期5天)

来源:百度知道 编辑:UC知道 时间:2024/05/05 01:26:09
for x=0:0.005:10
x1=mod(x,1);
if x1>=0&x1<=0.5
y1=-4*x1+2;
else
y1=4*x1-2;
end
subplot(2,1,1),plot(x,y1);
y2=1.5*sin(pi/10*x);
plot(x,y2);
hold on;
if(y2>=(y1+0.05))
y_out=1.8;
else if(y2<=y1)
y_out=0.001;
else
y_out=0.001:0.01:1.8;
end
end
subplot(2,1,2),plot(x,y_out);
hold on;
end
(这是一段输出图形的语句,请高手给出解释啊,,悬赏分30分送你。

这个程序很简单,入门的matlab。

for x=0:0.005:10 % for循环,x初值为0,步长为0.005,终值为10
x1=mod(x,1); %对x作除以1并取余数,实质是 取得x的小数部分并赋值给x1
if x1>=0&x1<=0.5 %如果,x1的范围是区间 [0,0.5]
y1=-4*x1+2; %那么,y1赋值为-4*x1+2
else %否则
y1=4*x1-2; %那么,y1赋值为4*x1-2 【作者的程序很垃圾影响速度,这段if可以写成,y1=4*x1-2, if x1>=0&x1<=0.5 y1=-y1;】
end
subplot(2,1,1),plot(x,y1); %绘制图像,有两个坐标图形,第一个为以 (x,y1)值来绘制

y2=1.5*sin(pi/10*x); %这段赋值不必讲了吧, 其中 pi是圆周率
plot(x,y2); %以(x,y2)绘制曲线,
hold on; %这个是图形保持的语句,不必理会。
if(y2>=(y1+0.05)) %判断,如果y2大于等于+0.05
y_out=1.8; %那么,变量y_out=1.8
else if(y2<=y1) %否则,如果y2小于等于y1
y_out=0.001; %那么,变量y_out=0.001
else %否则,也就是y2 处于区间 (y1,y1+0.05)
y_out=0.001:0.01:1.8; %那么,y_out变量的值是矩阵,初值为0.001,步长0.01,终值1.8
end
end
subplot(2,1,2),plot(x,y_out); %在第二个副图,以变量 (x,y_out) 来绘制图像
hold on;
end

--------------------------
程序语句部分解释完毕,
LZ还有什么疑问,直接问吧。

人家让你解释.你却于解释中还骂"任&qu