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

Julia中如何实现Python式的矩阵指定位置元素赋值?

Julia中给矩阵指定位置元素赋值的等效实现

在Julia中,直接使用A[[1,2,3],[1,1,3]] = 1不会得到预期效果——这是因为Julia对双数组索引的处理是广播式的,会生成一个3×3的子矩阵并给所有元素赋值,而非仅选中(1,1)、(2,1)、(3,3)三个位置。以下是几种符合需求的实现方式:

  • 笛卡尔索引法(推荐)
    用CartesianIndex打包每个目标位置的坐标,精准定位单个元素:

    A = zeros(Int, 4, 4)
    A[CartesianIndex.([(1,1), (2,1), (3,3)])] .= 1
    
  • 线性索引法
    Julia中矩阵按列优先存储,可先计算目标位置的线性索引(公式:(列号-1)*行数 + 行号),再直接索引赋值:

    A = zeros(Int, 4, 4)
    # (1,1)=1, (2,1)=2, (3,3)=(3-1)*4+3=11
    A[[1, 2, 11]] .= 1
    
  • 逐个赋值法
    对于少量元素,直接逐个指定位置赋值更直观:

    A = zeros(Int, 4, 4)
    A[1,1] = 1
    A[2,1] = 1
    A[3,3] = 1
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 00:47:37