Julia中BoundsError报错解析与解决:Vector调用size赋值出错
Julia BoundsError 问题解答
报错原因
Vector{Float64}是一维数组,调用size(c)返回的是仅含单个元素的元组(比如数组长度为5时,返回(5,))。你写的(m,n)=size(c)试图从这个元组里取出两个元素赋值给m和n,但这个元组只有1个元素,不存在索引为2的位置,所以触发了BoundsError——本质就是你要访问的位置在元组里根本不存在。
解决方法
根据你的需求选对应的写法:
- 只需要一维数组的长度:直接用
m = size(c, 1),或者更简洁的m = length(c)。 - 想兼容二维数组的赋值格式(比如得到类似行/列维度的结果):可以写
(m, n) = size(c, 1), size(c, 2),对于一维数组,size(c,2)会返回1;或者直接写(m, n) = length(c), 1也能达到同样效果。
内容的提问来源于stack exchange,提问作者sssss
相关产品推荐
相关产品推荐

