matlab if语句的用法

不知道为啥这个算出来不对。i=1:20x=(0.95+0.1*i/21)*1.0ifx<1y=(x-0.95)/0.05elsex>1y=(1.05-x)/0.05end... 不知道为啥这个算出来不对。
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,为什么不一样呢?
展开
 我来答
次次次蛋黄米亚
高粉答主

2018-12-17 · 说的都是干货,快来关注
知道小有建树答主
回答量:7778
采纳率:100%
帮助的人:248万
展开全部

嵌套if语句的语法如下:

if <expression 1>

% Executes when the boolean expression 1 is true 

if <expression 2>

% Executes when the boolean expression 2 is true    

end

end

例如:

创建脚本文件并在其中键入以下代码 :

a = 100;

b = 200;

% check the boolean condition if( a == 100 )

% if condition is true then check the following 

if( b == 200 )

% if condition is true then print the following 

fprintf('Value of a is 100 and b is 200\n' );

end

end

fprintf('Exact value of a is : %d\n', a );

fprintf('Exact value of b is : %d\n', b );MATLAB

执行上面示例代码,得到以下结果:

Value of a is 100 and b is 200

Exact value of a is : 100

Exact value of b is : 200

扩展资料:

C语言提供了三种形式的if语句:

1、if(表达式)语句。

例如:

if(x>y)printf("%d",x);

2、if(表达式)语句1 else 语句2。

例如:

if(x>y)printf("%d",x);

else printf("%d",y);

3、在每个语句中,可以有多个语句,但需要加上大括号。

例如:

if(x>y){printf("%d",x);break;}

参考资料来源:百度百科—if语句

匿名用户
2009-11-20
展开全部
楼主的问题还不是很明白,不过这样算出来的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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a742c14
2009-11-21 · TA获得超过161个赞
知道答主
回答量:33
采纳率:0%
帮助的人:37.6万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
greatdju
推荐于2018-02-12 · TA获得超过2.2万个赞
知道大有可为答主
回答量:2486
采纳率:50%
帮助的人:4291万
展开全部
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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你好好好好好好QW
2013-03-04
知道答主
回答量:13
采纳率:0%
帮助的人:1.9万
展开全部
貌似楼主显示的是x的值,而你所谓的“应该显示的”是y的值吧?????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式