自定义了一个函数X=F(t),函数里有一数组变量a[1]=t; a[2]=2*t; 要对a[1],a[2]做循环运算,当绘图时,t=1:50。t变成数组就出问题了。有解决办法吗?(注:函数里的数组变量是必须的)
要实现绘图功能
原函数:function r = solutionA(t)
a(:,1)=(1-exp(-0.02.*t)).^2;
a(:,2)=(1-exp(-0.02.*t)).^2;
a(:,3)=(1-exp(-0.02.*t)).^2;
a(:,4)=(1-exp(-1.*t./150)).^2;
a(:,5)=(1-exp(-1.*t./150)).^2;
a(:,6)=(1-exp(-1.*t./150)).^2;
a(:,7)=(1-exp(-1.*t./150)).^2;
a(:,8)=1-exp(-0.02.*t);
a(:,9)=1-exp(-0.02.*t);
a(:,10)=1-exp(-0.02.*t);
a(:,11)=1-exp(-0.02.*t);
a(:,12)=1-exp(-0.02.*t);
a(:,13)=1-exp(-0.02.*t);
r=0;
for i=1:13
r=r+a(i);
end
r=1-r;
p=0;
for i=1:12
for j=i+1:13
p=p+a(i)*a(j);
end
end
r=r+p;
我原来是将t值直接赋给一维数组a(i),然后对a(i)进行四则运算的,现在a变成二维了,不知道怎么处理,绘出的图也不大对。
追答你以前怎么画图的?
追问>> t=0:1:150;
>> y=solutionA(t);
>> plot(t,y)
function r = solutionA(t)
t=t(:);
a(:,1)=(1-exp(-0.02.*t)).^2;
a(:,2)=(1-exp(-0.02.*t)).^2;
a(:,3)=(1-exp(-0.02.*t)).^2;
a(:,4)=(1-exp(-1.*t./150)).^2;
a(:,5)=(1-exp(-1.*t./150)).^2;
a(:,6)=(1-exp(-1.*t./150)).^2;
a(:,7)=(1-exp(-1.*t./150)).^2;
a(:,8)=1-exp(-0.02.*t);
a(:,9)=1-exp(-0.02.*t);
a(:,10)=1-exp(-0.02.*t);
a(:,11)=1-exp(-0.02.*t);
a(:,12)=1-exp(-0.02.*t);
a(:,13)=1-exp(-0.02.*t);
r=0;
for i=1:13
r=r+a(:,i);
end
r=1-r;
p=0;
for i=1:12
for j=i+1:13
p=p+a(:,i).*a(:,j);
end
end
r=r+p;
t=0:1:150; 绘制出的t,y曲线是一条直线(这实际上是一条可靠性曲线,随时间增加而下降的), 你能绘出曲线吗?
追答你还是把原始资料给我吧.
我不知道里面的细节.
按照以上赋值后,我想做a(1)*a(2)如何实现,直接写吗
追答a(:,1).*a(:,2),用点乘就行了
追问t=0:1:150; 绘出的是一条直线,还是不正确
绘图失败,是一条直线,没有解决问题,a(i)如何进行加减运算?
追答现在是a是二维的