查看: 5996|回复: 11|关注: 0

[已解决] Matlab使用if定义分段函数

[复制链接]

新手

14 麦片

财富积分


050


6

主题

13

帖子

0

最佳答案

  1. function [fun] = fun(t)

  2. if t<=10
  3.     fun=10;
  4. else
  5.     fun=100;
  6. end
  7. end
复制代码

把t=1:1:100代入这个函数结果只出来一个100而不是一个数组?

新手

14 麦片

财富积分


050


6

主题

13

帖子

0

最佳答案
 楼主| 发表于 2017-10-30 10:19:45 | 显示全部楼层
为什么会这样,是不是哪里漏了定义?

论坛优秀回答者

专家

2434 麦片

财富积分


20003000


4

主题

4717

帖子

544

最佳答案
  • 关注者: 511
发表于 2017-10-30 10:35:34 | 显示全部楼层
你是怎么代入的?
t=1:1:100
fun(t)
酱紫?

新手

14 麦片

财富积分


050


6

主题

13

帖子

0

最佳答案
 楼主| 发表于 2017-10-30 10:41:57 | 显示全部楼层
halleyhit 发表于 2017-10-30 10:35
你是怎么代入的?
t=1:1:100
fun(t)

是的。为什么出来是ans=100

论坛优秀回答者

专家

2434 麦片

财富积分


20003000


4

主题

4717

帖子

544

最佳答案
  • 关注者: 511
发表于 2017-10-30 10:43:24 | 显示全部楼层
chenjh258 发表于 2017-10-30 10:41
是的。为什么出来是ans=100

额。。。你显然是误解了t=这么的意义,混淆了赋值语句和for循环
你应该用for循环的

新手

14 麦片

财富积分


050


6

主题

13

帖子

0

最佳答案
 楼主| 发表于 2017-10-30 10:45:35 | 显示全部楼层
halleyhit 发表于 2017-10-30 10:43
额。。。你显然是误解了t=这么的意义,混淆了赋值语句和for循环
你应该用for循环的 ...

谢谢,但还是不太明白。其他函数比如sin(t),是可以直接出来数组的,为什么这个函数就不行?

论坛优秀回答者

专家

2434 麦片

财富积分


20003000


4

主题

4717

帖子

544

最佳答案
  • 关注者: 511
发表于 2017-10-30 10:52:20 | 显示全部楼层
chenjh258 发表于 2017-10-30 10:45
谢谢,但还是不太明白。其他函数比如sin(t),是可以直接出来数组的,为什么这个函数就不行? ...

找本基础教材看起来就是了
或许你可以尝试arrayfun(@fun,t)这样的代码,不过对初学者我也不知道这是好事还是坏事

论坛优秀回答者

权威

8043 麦片

财富积分



5

主题

9481

帖子

1828

最佳答案
  • 关注者: 417
发表于 2017-10-30 10:57:53 | 显示全部楼层 |此回复为最佳答案
本帖最后由 jingzhaos 于 2017-10-30 11:00 编辑

对于向量而言,if t<10是指要判断t的所有值<10, 你可以试试:t=5:15;t<10,看看是什么结果,就知道你这样判断的问题了。但是你可以写成
  1. function [fun] = fun(t)
  2.     fun=10*(t<=10)+100*(t>10)
  3. end
复制代码

论坛优秀回答者

入门

203 麦片

财富积分


50500


16

主题

350

帖子

41

最佳答案
  • 关注者: 8
发表于 2017-10-30 15:55:54 | 显示全部楼层

这样就可以了,将输出定义为数组,
t=1:1:100;
w=zeros(1,100);

for i=1:1:100

   if t(i)<10
       w(1,i)=10;
   else
       w(1,i)=100;
   end
end
plot(w);


新手

14 麦片

财富积分


050


6

主题

13

帖子

0

最佳答案
 楼主| 发表于 2017-10-30 16:33:41 | 显示全部楼层
jingzhaos 发表于 2017-10-30 10:57
对于向量而言,if t

啊哈,明白了。谢谢你指出问题根源。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表