我有一个简单的情节如下
我想在50到100之间选择信号,然后将颜色更改为红色。这是我写的代码
close all
clear all
clc
%%
t=1:200 ;
y=sin(t);
figure (1), hold on, plot(t, y);
[x1,y1] = ginput(2)
figure(2), hold on, plot(t,y,'b'), plot(t(t>=x1(1)), y(t(t>=x1(1))),
'r',t(t<=x1(2)), y(t(t<=x1(2))),'b')
但是我收到的在逻辑上是不正确的
我想将50到100之间的样本颜色更改为红色。你能让我知道我该怎么做吗?(我检查了
t(x1(1)<t<x1(2))
但它没有用。
请注意,y(t(t>=x1(1))
由于t=1:200
对应于的索引,在这种情况下碰巧是有效的y
。
要解决您的问题,您只需要使用逻辑索引来找到合适的值。
t=1:200;
y=sin(t);
figure (1), hold on, plot(t, y);
[x1,y1] = ginput(2);
dt = t(2)-t(1);
figure(2), hold on;
rng1 = t < x1(1);
rng2 = (t+dt) >= x1(1) & (t-dt) <= x1(2);
rng3 = t > x1(2);
plot(t(rng1), y(rng1), 'b');
plot(t(rng2), y(rng2), 'r');
plot(t(rng3), y(rng3), 'b');
编辑我意识到我可能会在情节中留下空白。扩大了不平等现象以纠正这一问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句