You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia使用Plots库scatter!函数出现MethodError错误怎么办?

错误触发原因

你的代码核心问题是z变量的类型不符合预期:

  • 你在定义square1函数以及调用scatter!时用到的全局变量z,实际被赋值为了字符串类型而非你预期的整数数组
  • 字符串在Julia中是可迭代的字符序列,传入scatter!时会被拆分为多个独立的Char类型参数,Plots的绘图方法找不到匹配这么多Char参数的scatter实现,因此抛出该MethodError。
解决方法

按以下步骤调整代码即可:

  1. 先显式定义z为你需要的整数数组,避免全局变量未定义/类型错误问题,同时调整函数定义将z作为参数传入,避免全局变量污染:
# 调整函数定义,将z作为显式参数传入
coordinate_distance(x,z) = abs.(x .- z)
square1(x, z) = sum(coordinate_distance(x,z).^2)
  1. 绘图前先声明z的实际值,再调用绘图接口:
using Plots
LB,UB = 0,20
# 这里替换为你实际需要的整数数组
z = [1,3,6,9,12,15,18]
# 绘制函数曲线时用匿名函数绑定z参数
plot(x -> square1(x, z), LB, UB, legend=false)
# 绘制散点用广播语法更简洁
scatter!(z, square1.(z, z))
  1. 若调整后仍报错,可运行@show z typeof(z)检查z的实际类型,确认是整数数组而非字符串即可。

内容的提问来源于stack exchange,提问作者Pradnk77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:51:04