问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

求助:Matlab曲线线型和颜色设置问题:如何过滤掉一条曲线的一部分

发布网友 发布时间:2022-05-09 14:05

我来回答

3个回答

热心网友 时间:2024-02-01 10:30

可以了,关键是求交点,对于你这个问题,交点就两个,比较好求,下面是我自己找的三个函数的例子 

clc;clear;

t=linspace(-600,600,600);

T=400;omega=2*pi/T;

y1=sin(omega*t-0*pi/3);

y2=sin(omega*t-2*pi/3);

y3=sin(omega*t-4*pi/3);

temp=y1(find(y1>=y2));

cross(1)=temp(1);

temp=y2(find(y2<=y3));

cross(2)=temp(1);%

sort(cross);%排序

figure,hold on

%%%%%%%%%%%%第一条

y11n=find(y1<cross(1) );

temp=find(diff(y11n)>1);

plot(t(y11n(1):y11n(temp(1))),y1(y11n(1):y11n(temp(1))),'k--')

for i=1:length(temp)-1

    plot(t(  y11n(temp(i)+1):y11n(temp(i+1))   ),y1(y11n(temp(i)+1):y11n(temp(i+1)) ),'k--')

end

plot(t(  y11n(temp(end)+1):y11n(end)   ),y1(y11n(temp(end)+1):y11n(end )),'k--')

%%%%%

y11n=find(y1>cross(2) );

temp=find(diff(y11n)>1);

plot(t(y11n(1):y11n(temp(1))),y1(y11n(1):y11n(temp(1))),'k:');

for i=1:length(temp)-1

    plot(t(  y11n(temp(i)+1):y11n(temp(i+1))   ),y1(y11n(temp(i)+1):y11n(temp(i+1)) ),'k:')

end

plot(t(  y11n(temp(end)+1):y11n(end)   ),y1(y11n(temp(end)+1):y11n(end )),'k:')

%%%%%%%

y11n=find(y1<=cross(2)&y1>=cross(1) );

temp=find(diff(y11n)>1);

plot(t(y11n(1):y11n(temp(1))),y1(y11n(1):y11n(temp(1))),'k-');

for i=1:length(temp)-1

    plot(t(  y11n(temp(i)+1):y11n(temp(i+1))   ),y1(y11n(temp(i)+1):y11n(temp(i+1)) ),'k-')

end

plot(t(  y11n(temp(end)+1):y11n(end)   ),y1(y11n(temp(end)+1):y11n(end )),'k-')

%%%%%%%%%%%%%%%%%%%第二条

y11n=find(y2<cross(1) );

temp=find(diff(y11n)>1);

plot(t(y11n(1):y11n(temp(1))),y2(y11n(1):y11n(temp(1))),'r--')

for i=1:length(temp)-1

    plot(t(  y11n(temp(i)+1):y11n(temp(i+1))   ),y2(y11n(temp(i)+1):y11n(temp(i+1)) ),'r--')

end

plot(t(  y11n(temp(end)+1):y11n(end)   ),y2(y11n(temp(end)+1):y11n(end )),'r--')

%%%%%

y11n=find(y2>cross(2) );

temp=find(diff(y11n)>1);

plot(t(y11n(1):y11n(temp(1))),y2(y11n(1):y11n(temp(1))),'r:');

for i=1:length(temp)-1

    plot(t(  y11n(temp(i)+1):y11n(temp(i+1))   ),y2(y11n(temp(i)+1):y11n(temp(i+1)) ),'r:')

end

plot(t(  y11n(temp(end)+1):y11n(end)   ),y2(y11n(temp(end)+1):y11n(end )),'r:')

%%%%%%%

y11n=find(y2<=cross(2)&y2>=cross(1) );

temp=find(diff(y11n)>1);

plot(t(y11n(1):y11n(temp(1))),y2(y11n(1):y11n(temp(1))),'r-');

for i=1:length(temp)-1

    plot(t(  y11n(temp(i)+1):y11n(temp(i+1))   ),y2(y11n(temp(i)+1):y11n(temp(i+1)) ),'r-')

end

plot(t(  y11n(temp(end)+1):y11n(end)   ),y2(y11n(temp(end)+1):y11n(end )),'r-')

%%%%%%%%%%%%%%%%%%%第三条

y11n=find(y3<cross(1) );

temp=find(diff(y11n)>1);

plot(t(y11n(1):y11n(temp(1))),y3(y11n(1):y11n(temp(1))),'b--')

for i=1:length(temp)-1

    plot(t(  y11n(temp(i)+1):y11n(temp(i+1))   ),y3(y11n(temp(i)+1):y11n(temp(i+1)) ),'b--')

end

plot(t(  y11n(temp(end)+1):y11n(end)   ),y3(y11n(temp(end)+1):y11n(end )),'b--')

%%%%%

y11n=find(y3>cross(2) );

temp=find(diff(y11n)>1);

plot(t(y11n(1):y11n(temp(1))),y3(y11n(1):y11n(temp(1))),'b:');

for i=1:length(temp)-1

    plot(t(  y11n(temp(i)+1):y11n(temp(i+1))   ),y3(y11n(temp(i)+1):y11n(temp(i+1)) ),'b:')

end

plot(t(  y11n(temp(end)+1):y11n(end)   ),y3(y11n(temp(end)+1):y11n(end )),'b:')

%%%%%%%

y11n=find(y3<=cross(2)&y3>=cross(1) );

temp=find(diff(y11n)>1);

plot(t(y11n(1):y11n(temp(1))),y3(y11n(1):y11n(temp(1))),'b-');

for i=1:length(temp)-1

    plot(t(  y11n(temp(i)+1):y11n(temp(i+1))   ),y3(y11n(temp(i)+1):y11n(temp(i+1)) ),'b-')

end

plot(t(  y11n(temp(end)+1):y11n(end)   ),y3(y11n(temp(end)+1):y11n(end )),'b-')

%%%%%%%%%%%%%%%%%%%%

plot([-600,600],[cross(1),cross(1)],'k',[-600,600],[cross(2),cross(2)],'k')

axis([-600,600,-1,1])

追问牛!小弟我是个初学者。
th2=-4*pi:pi/18:4*pi;
w1=w*L2*sin((th2-0*pi/3)-th3)/L4*sin(th4-th3);
w2=w*L2*sin((th2-2*pi/3)-th3)/L4*sin(th4-th3);
w3=w*L2*sin((th2-4*pi/3)-th3)/L4*sin(th4-th3);
需要求w1,w2,w3和th2的关系曲线,其他数据都为已知,我照你的方法实现不了
plot(th2(y11n(1):y11n(temp(1))),w1(y11n(1):y11n(temp(1))),'k-');
错误:Index exceeds matrix dimensions.
我加分,请指教!在此谢过了。

追答你看我这个三个图,三条曲线图的起始位置是需要有个大小判断的,我这里没有,所以你这个要判断一下。跟我的一致。。
具体细节不跟你说了,一时半会说不清楚,你要想用我的程序,你就这样改:
首先th2=-4*pi:pi/18:4*pi;这一句中间的步长要弄的非常小,不然曲线出现缺口了,改成:
th2=-4*pi:pi/360:4*pi;
根据你给我发的结果,
y1=w2;y2=w3;y3=w1;
然后下面接着我的程序,从temp开始复制到你的程序后面就行了
后面要把轴范围改一下
具体内容看我发给你的邮件

热心网友 时间:2024-02-01 10:30

(matlab)plot画图的颜色线型
y * · 点线
m 粉红 ○ 圈线
c 亮蓝 × ×线
r 大红 + +字线
g 绿色 - 实线
b 蓝色 * 星形线
w 白色 : 虚线
k 黑色 -.
-- 点划线
matlab6.1线形:
[ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram ]
square 正方形
diamond 菱形
pentagram 五角星
hexagram 六角星

用法

grid 打开网格线 -- 虚线
hold on 命令用于在已画好的图形上添加新的图形
1 x=0:0.001:10; % 0到10的1000个点(每隔0.001画一个点)的x座标
y=sin(x); % 对应的y座标
plot(x,y); % 绘图
注:matlab画图实际上就是描点连线,因此如果点取得不密,画出来就成了折线图,请试验之
2 Y=sin(10*x);
plot(x,y,'r:',x,Y,'b') % 同时画两个函数
3 若要改变颜色,在座标对后面加上相关字串即可:
x=0:0.01:10;
plot(x,sin(x),'r')
4 若要同时改变颜色及图线型态(Line style),也是在坐标对后面加上相关字串即可:
plot(x,sin(x),'r*')
5 用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围
axis([0,6,-1.5,1])
6 MATLAB也可对图形加上各种注解与处理:(见上表)
xlabel('x轴'); % x轴注解
ylabel('y轴'); % y轴注解
title('余弦函数'); % 图形标题
legend('y = cos(x)'); % 图形注解
gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置
grid on; % 显示格线
7画椭圆
a = [0:pi/50:2*pi]'; %角度
X = cos(a)*3; %参数方程
Y = sin(a)*2;
plot(X,Y);
xlabel('x'), ylabel('y');
title('椭圆')
8 绘制函数 在0 ≤ x ≤ 1时的曲线。
x=0:0.1:1
y=x.*exp(-x) %为什么用点运算?若不用会怎样
plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)')
9 画出衰减振荡曲线 与它的包络线 及 。t 的取值范围是[0, 4π] 。
t=0:pi/50:4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,'-r',t,y0,':b',t,-y0,':b') % -r表示红色实线,:b表示蓝色点线,看上表
grid
10 在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图,如
x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
u=2*sin(x).*cos(x); v=sin(x)./cos(x);
subplot(2,2,1),plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')
subplot(2,2,2),plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
subplot(2,2,3),plot(x,u),axis([0 2*pi -1 1]),title('2sin(x)cos(x)')
subplot(2,2,4),plot(x,v),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')

参考资料:http://blog.sina.com.cn/s/blog_4d8716e401000apg.html

热心网友 时间:2024-02-01 10:30

matlab里面用plot画的图每条曲线的线型,颜色都可以变,例如plot(x,y,'r','*');代表红色和*线型。
至于要达到你说的效果估计得分段画图,就跟曲线分段表示一样
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
连别人的wifi会不会看到我浏览了哪些网站? 电视连接wifi后怎么看网络电视 电脑win7调低亮度win7怎么调整屏幕亮度 电脑屏幕太亮了怎么调暗一点win7windows7怎么调亮度 台式电脑win7 怎么调节屏幕亮度显示器太亮了! win7电脑屏幕一直亮着怎么让电脑屏幕一直亮着 从零开始学作曲(小白入门)【22.11.17更新】 45岁的袁立再次宣布结婚,她这已经是第几次结婚了? dnf怎么洗红字 dnf红字装备怎么改属性 如何去掉word批注如何去掉word批注 110029基金每年都分红吗 110029易方达科讯有哪些优势 110029基金定投有时间限制吗 用Matlab做画星形线(astroid)的动画 易方达科讯股票基金 110029 这个基金好不好 matlab画星形线怎么画??? 基金科讯&lt;110029&gt;如何? 数字电视用遥控器怎么切换到网络电视 日本动态服务器,可以无限换IP的 国际域名放在自己建的动态IP服务器需要备案吗 谁给个好的动态代理服务器IP地址 越多越好 有没有真实玩家ip的,国外动态服务器? OPPOa33怎么退出工程模式,急死我了快救命啊 请问安装系统OPPO R827T_11_A.1…1_140419_wipe后出现工程模式该怎么办 小米3老是无sim卡,重启后好了过一会又没了,卡没有问题,怎么回事 小米3为什么插上slm卡无服,没信号,怎么回事 小米3手机 老是没信号读不到手机卡了 什么问题呢? 小米3手机,手机卡装上了,无信号,不能拨打电话,WiFi正常,其他应用也能正常打开,最有可能是哪里 我的是小米3 可以检测出有手机卡,但是没有信号是怎么回事? 为什么小米3插入sim卡没有信号 易方达科讯110029赎回费用是多少 心形线 r=a(1+cosθ) 是什么意思啊?? 急!!!极坐标积分求面积的一道题,有答案 110029 易方达科讯 买的时候1块钱 现在净值 2.58. 累计净值 7.4374元 我是赚了还是赔了 怎么用matlab求星形线长度 请问为何易方达科讯这个基金大智慧和同花顺两个软件都找不到? 网上申请中国民生信用银行卡,姓名拼音正确格式怎么填? 110029 基金会涨吗? matlab紫色用什么字母 信用卡怎么填写汉语拼音 (x^(2)+y^(2))^(3)=400x^(2)y^(2)图像 民生银行信用卡姓名拼音怎么写 HintPubwinSmss是什么程序? 在线申请信用卡姓名拼音一栏怎么填姓名拼音一栏用空 ps的size mark怎么用 信用卡姓名栏拼音怎么填 申办信用卡姓名拼音格式怎么填写 民生信用卡的拼音姓名怎么填写? 打底袜颜色如何搭配 民生银行信用卡姓名一栏怎么填写?
  • 焦点

最新推荐

猜你喜欢

热门推荐