matlab分段函数输出图像问题

学习 时间:2026-04-04 19:16:39 阅读:439
matlab分段函数输出图像问题v=linspace(60,120,2);if 60

最佳回答

苗条的荷花

霸气的蚂蚁

2026-04-04 19:16:39

这小段代码问题太多了,简直把我能想到的错误都犯全了。 -_-|||| 1、linspace取点太少,只有两个点,无论怎么算都只能得到直线;2、if语句不适合使用向量作为判断条件,因为只有向量所有元素都为真的时候才会执行;3、关系运算不能连写,例如60<=v<100的含义并不是(60<=v)&&(v<100),而是(60<=v)<100,显然,表达式(60<=v)作为关系运算,得到的结果或0或1,肯定是小于100的,所以(60<=v)<100的结果为真,因而,会直接执行if的第一个分支,后面的都不可能被执行到。4、MATLAB中有elseif关键词,尽管也可以用else if,但更推荐前者;5、最后else的s算是什么? 正确写法之一(使用for循环)v=linspace(60,120,61);for i=1:length(v)    if  60<=v(i) && v(i)<100 c(i)=24000。*v(i)。/55;    elseif v(i)==100 c(i)=24000。*v(i)。/80;    elseif 100<v(i) && v(i)<=120  c(i)=24000。*v(i)。/105;    else c(i)=-5;    endendplot(v,c); 正确写法之二(使用向量运算)v=linspace(60,120,61);c=ones(size(v))*5;c(60<=v&v<100)=24000*v(60<=v&v<100)/55;c(v==100)=24000*v(v==100)/80;c(100<v&v<=120)=24000*v(100<v&v<=120)/105;plot(v,c);

最新回答共有3条回答

  • 还单身的绿茶
    回复
    2026-04-04 19:16:39

    这小段代码问题太多了,简直把我能想到的错误都犯全了。 -_-

  • 威武的龙猫
    回复
    2026-04-04 19:16:39

    | 1、linspace取点太少,只有两个点,无论怎么算都只能得到直线;2、if语句不适合使用向量作为判断条件,因为只有向量所有元素都为真的时候才会执行;3、关系运算不能连写,例如60<=v<100的含义并不是(60<=v)&&(v<100),而是(60<=v)<100,显然,表达式(60<=v)作为关系运算,得到的结果或0或1,肯定是小于100的,所以(60<=v)<100的结果为真,因而,会直接执行if的第一个分支,后面的都不可能被执行到。4、MATLAB中有elseif关键词,尽管也可以用else if,但更推荐前者;5、最后else的s算是什么? 正确写法之一(使用for循环)v=linspace(60,120,61);for i=1:length(v)    if  60<=v(i) && v(i)<100 c(i)=24000。*v(i)。/55;    elseif v(i)==100 c(i)=24000。*v(i)。/80;    elseif 100<v(i) && v(i)<=120  c(i)=24000。*v(i)。/105;    else c(i)=-5;    endendplot(v,c); 正确写法之二(使用向量运算)v=linspace(60,120,61);c=ones(size(v))*5;c(60<=v&v<100)=24000*v(60<=v&v<100)/55;c(v==100)=24000*v(v==100)/80;c(100<v&v<=120)=24000*v(100<v&v<=120)/105;plot(v,c);

上一篇 中国汉字是中华文化的根,它充满灵性,是很有意味的文化组成部分.

下一篇 什么是甲醛?甲醛有那些危害?