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

如何在Lua中实现带换行的矩阵拼接?

Lua矩阵横向拼接并自动换行需求

本人编程基础薄弱,明确需求但无法准确表述,以下用示例说明具体需求:

现有两个Lua矩阵:

mX = {
    {X,0,0,0,X},
    {0,X,0,X,0},
    {0,0,X,0,0},
    {0,X,0,X,0},
    {X,0,0,0,X},
}

mY = {
    {X,0,0,0,X},
    {0,X,0,X,0},
    {0,0,X,0,0},
    {0,X,0,0,0},
    {X,0,0,0,0},
}

需要将它们按指定顺序横向拼接成更大的二维数组,当列数达到指定值时自动换行。例如按mX,mY,mX,mY,mX,mY,mX的顺序拼接,得到目标矩阵mZ:

mZ = {
    {X,0,0,0,X,X,0,0,0,X,X,0,0,0,X,X,0,0,0,X,X,0,0,0,X},
    {0,X,0,X,0,0,X,0,X,0,0,X,0,X,0,0,X,0,X,0,0,X,0,X,0},
    {0,0,X,0,0,0,0,X,0,0,0,0,X,0,0,0,0,X,0,0,0,0,X,0,0},
    {0,X,0,X,0,0,X,0,0,0,0,X,0,X,0,0,X,0,0,0,0,X,0,X,0},
    {X,0,0,0,X,X,0,0,0,0,X,0,0,0,X,X,0,0,0,0,X,0,0,0,X},
    {X,0,0,0,X,X,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    {0,X,0,X,0,0,X,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    {0,0,X,0,0,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    {0,X,0,X,0,0,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    {X,0,0,0,X,X,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
}

尝试过程与问题

  • 用ChatGPT提问,因表述不清未得到符合需求的方案
  • 使用table.insert时出现矩阵损坏问题
  • 曾计划编写递归函数手动赋值,但会导致现有值偏移

编辑1:用table.insert编写了拼接函数,但函数参数直接引用原矩阵而非复制,导致修改参数会影响原矩阵。

编辑2:已实现一个可用的catcat函数,虽未按预期左对齐换行而是居中放置,但能满足当前需求,不过存在不同高度矩阵拼接的问题:

k = 0
function catcat(kot,meow)
    if #kot[1 + k] >= 77 then
        k = k + 6
    end
    for i=1,#meow do
        for ii=1, #meow[i] do
            table.insert(kot[i + k],meow[i][ii])
        end
    end
end

mKOT = {{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 20:51:29