matlab使用for循环绘制曲线图时,如何自定义曲线颜色?

如下程序所示,我使用了两个for循环。我就是想问一下如何自定义线条颜色?1、已知可以使用plot(x,y,'--','color',[0.49,0.18,0.56]),来定义线性和颜色,我想怎么将这种用法用到下文的循环语句中;2、画图后对图像修改也是一种方法,但是比较繁琐;同时,不知道是什么原因,我的软件在修改颜色时,总是报错。有没有大神可以解决这个问题?clcclear allsyms rp r A0 B0 py a pw gama p0 b delta a0 E phic=2.02*10^3; b=0.466 ; E=2.4*10^6 ; a=0.0015;a0=0;delta=0;gama=1025*9.8;p0=0;for d=0.03:0.03:0.12 ; phi=0.000000000001:0.5:5.000000000001; m=zeros(size(phi)); n=zeros(size(phi)); for i=1:length(phi); A0=(1+sin(phi(i)*pi/180))/(1-sin(phi(i)*pi/180)); B0=(2*c*cos(phi(i)*pi/180))/(1-sin(phi(i)*pi/180)); pw =-(6*rp^2*(2*A0 - 1)*(B0 - p0 + A0*p0))/(A0*a^3*(rp/a)^(2/A0)*(A0 + 2)*((2*A0)/(a*(A0 - 2)) - 1/(a*(A0 - 2)) + ... (8*(A0 - 2*b)*(rp/a)^((A0 - 2)/A0)*(A0 - 1))/(a*(b - 1)*(A0^2 - 4)) - (4*(A0 - 2*b)*(rp/a)^((A0 - 2)/A0)*... (A0 - 1))/(A0*a*(b - 1)*(A0^2 - 4)) + 1)); eqn=((18.*(A0.*b+b-1).*p0 +6.*B0.*(b+1))./(2+A0)).*rp.^3+ 6.*(1+b).*a.*pw.*((A0.*b+b-1)./((2+A0).*... (b-1))).*rp.^2 -2.*E.*a.^3==0; m=vpasolve(eqn,rp, [0,3]); n(i)=(m-a)/(d/2); end plot(phi,100*n) axis([0 5 10 100]); hold onend

matlab使用for循环绘制曲线图,自定义每个曲线图的颜色,可以使用plot(x,y,'--','color',rand(1,3));这样的代码实现,因为代码的外层for循环只跑4次,画4次plot,在开头加一个clf擦除旧图就可。

效果图如下

代码修改列出如下:

clc;clear all;
clf;
syms rp r A0 B0 py a pw gama p0
b delta a0 E phi;

c=2.02E3;
b=0.466;
E=2.4E6 ;
a=0.0015;
a0=0;
delta=0;
gama=1025*9.8;
p0=0;
phi=0.00000000001:0.5:5.00000000001;
figure(1);

hold on;

for d=0.03:0.03:0.12;



n=zeros (size (phi));
m=zeros (size (phi));
for i=1: length (phi);
A0= (1+sin(phi(i)*pi/180))/ (1-sin(phi(i)*pi/180));
B0= (2*c*cos (phi(i) *pi/180))/ (1-sin(phi(i)*pi/180));
pw =-(6*rp.^2*(2*A0 - 1)*(B0 - p0 + A0*p0))/ (A0*a^3* (rp/a) ^ (2/A0)*(A0 + 2)*((2*A0)/(a*(A0 - 2)) - 1/(a*(A0 - 2)) + (8*(A0 - 2*b)*(rp/a)*((40 - 2)/A0)*(A0 - 1))/(a*(b - 1)*(A0^2 - 4)) - (4*(A0 - 2*b)*(rp/a)^ ((40 - 2)/A0)* (A0 - 1))/(A0*a*(b - 1)*(A0^2 - 4)) + 1));

eqn=((18.*(A0.*b+b-1).*p0 +6.*B0.*(b+1))./ (2+A0)).*rp.^3+ 6.*(1+b).*a.*pw.*((A0.*b+b-1)./((2+A0).*
(b-1))).*rp.^2 -2.*E.*a.^3==0;
m=vpasolve(eqn, rp,[0, 3]);
n(i)= (m-a)/(d/2);

end;
plot(phi, 100*n,'--','color',rand(1,3));

end
;

axis([O 5 10 100]);
hold off;

代码局部截图如丐

追答

倒数第二行是
axis([0 5 10 100]);

温馨提示:答案为网友推荐,仅供参考
相似回答