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

如何从一维列表存储的2×2矩阵中通过(x,y)坐标获取元素

二维坐标转一维数组索引的解决方案

这问题挺典型的,本质就是把二维矩阵的坐标映射到一维数组的索引上,咱们结合你的需求一步步理清楚:

首先根据你给出的例子——坐标(0,1)对应元素c,以及一维列表["a","b","c","d"],可以确定你的虚拟2×2矩阵是按行存储的,布局如下:

行y=0 → [a, b]
行y=1 → [c, d]

这里y代表行号,x代表该行内的列号,每一行固定有2个元素(矩阵的列数)。

核心映射公式

要通过(x,y)获取对应元素,只需要计算一维数组的索引,公式为:

索引 = y × 矩阵列数 + x

针对你的2×2矩阵,列数是2,代入后就是:索引 = y*2 + x

代码验证

直接用你的变量来测试:

var list = ["a","b","c","d"];
var x = 0; 
var y = 1;
var columnCount = 2; // 固定为矩阵的列数
var targetIndex = y * columnCount + x;
var result = list[targetIndex]; // result的值就是"c",完全符合预期

扩展说明

这个公式是通用的——如果之后你的矩阵变成M×N的大小,只需要把columnCount换成N(矩阵的列数),就能轻松完成二维坐标到一维索引的转换,适配任何按行存储的一维数组矩阵场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:27:50