m0_73904918 2023-04-04 12:11 采纳率: 50%
浏览 27
已结题

r语言怎么画分段函数

#遇到的问题
定义 𝑓(𝑥) =x^2 + 1,当 𝑥 > 1; 𝑓(𝑥) = 3𝑥2 − 1,当 0 < 𝑥 ≤ 1; 𝑓(𝑥) = 𝑥 − 1,当 𝑥 ≤ 0
.画出函数 𝑓(𝑥) 在 [-1,2] 上的图像
#my code

m <- function(x){
  if(x>1){f=x^2+1}
  if(x<=0){f=x-1}
  else{f=3*x^2-1}
  return(f)}
n <- Vectorize(m)
plot(m,-1,2,col=6)

#出现的问题
Error in if (x > 1) { : the condition has length > 1

##我知道如果函数只有两段的话可以用ifelse()来解决,但这个有三段没办法用此种方法,如果用curve函数的话,得分三次写,有点麻烦,有什么简便的方法来解决吗
希望得到大家的帮助,万分感谢!

  • 写回答

1条回答 默认 最新

  • Cmy_CTO 2023-04-04 12:21
    关注

    可以使用向量化函数ifelse来解决

    f <- function(x){ ifelse(x>1,x^2+1,ifelse(x<=0,x-1,3*x^2-1)) } plot(f,-1,2,type="l",col=6)

    这里ifelse函数嵌套使用
    如果x>1,则返回x^2+1,否则,进入下一层ifelse,
    如果x<=0则返回x-1,否则返回3*x^2-1。

    最后使用plot函数画图,指定type="l"来画出连续的曲线。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    m0_73904918 2023-04-04 13:40

    成功了,谢谢

    1
    回复
    Cmy_CTO 回复 m0_73904918 2023-04-04 16:25

    小case 有机会关注一波 十分感谢🙏

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月11日
  • 已采纳回答 4月4日
  • 创建了问题 4月4日

悬赏问题

  • ¥15 MATLAB图片转灰度格式问题
  • ¥15 把h5作品链接复制到自己的账号里
  • ¥15 ensp抓包实验配置
  • ¥15 强化学习算法、MRO
  • ¥15 想要学习一门技术来保证以后能够吃上碗饭,该学什么好
  • ¥20 matlab绘冲床平面连杆机构图和仿真,求帮助
  • ¥15 为什么树莓派5b显示禁止连接
  • ¥15 请专家处理报错!基于深度学习的车型分类问题:数据集为包含 10 种车型的图像数据集,分为训练集、验证集和测试集。
  • ¥20 流量太费!寻找便宜的app音视频SDK或平替方案。
  • ¥15 kubeasz部署遇到问题
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部