matlab if语句的用法

来源:百度知道 编辑:UC知道 时间:2024/05/11 05:37:24
不知道为啥这个算出来不对。
i=1:20
x=(0.95+0.1*i/21)*1.0
if x<1
y=(x-0.95)/0.05
else x>1
y=(1.05-x)/0.05
end

算出来怎么是 0.9548 0.9595 0.9643 0.9690 0.9738 0.9786 0.9833 0.9881 0.9929 0.9976 1.0024
1.0071 1.0119 1.0167 1.0214 1.0262 1.0310 1.0357 1.0405 1.0452跟实际算出来的值不一样。
我指的是实际算出来的答案应该是0.0960 0.1900 0.2860 0.3800 0.4760 0.5720 0.6660 0.7620 0.8580 0.9520 0.9520 0.8580 0.7620 0.6660 0.5720 0.4760 0.3800 0.2860 0.1900 0.0960,为什么不一样呢?

楼主的问题还不是很明白,不过这样算出来的y的确是一行向量呀。
要么这样改写,结果还是一样的,个人感觉容易理解:
y=ones(1,20);
for =1:20
x=(0.95+0.1*i/21)*1.0
if x<1
y(1,i)=(x-0.95)/0.05;
else x>1
y(1,i)=(1.05-x)/0.05;
end
end
y

else就行了,不用再加个x>1
for i=1:20
x(i)=(0.95+0.1*i/21)*1.0;
if x(i)<1
y(i)=(x(i)-0.95)/0.05;
else
y(i)=(1.05-x(i))/0.05;
end
end
y

else改了一下,我的结果是这样的,看看跟你实际是不是一样
i=1:20;
x=(0.95+0.1*i/21)*1.0;
y=zeros(1,20);
if x<1
y=y+(x-0.95)/0.05;
else
y=y+(1.05-x)/0.05;
end
y
结果:一行矩阵
1.9047 1.8095 1.7142 1.6190 1.5238 1.4285 1.3333 1.2380 1.1428 1.0476 0.9523 0.8571 0.7619 0.6666 0.5714 0.4761 0.3809 0.2857 0.1904 0.0952

貌似楼主显示的是x的值,而你所谓的“应该显示的”是y的值吧?????