更改部分信号的颜色MATLAB

朱丽叶

我有一个简单的情节如下

在此处输入图片说明

我想在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章