大家好!我目前正在尝试在 VBScript 中实现之前在 excel 中找出一些东西。我必须在矩阵中以数学方式转置几个单元格(10*10 或 5r*10c):
------------------------------------------- | .. | .. | .. | .. | .. | .. | | 21 | 22 | 23 | 24 | 25 | .. | | 11 | 12 | 13 | 14 | 15 | .. | | 1 | 2 | 3 | 4 | 5 | .. | -------------------------------------------
必须成为
------------------------------------------- | .. | .. | .. | .. | .. | .. | | 3 | 13 | 23 | 33 | 43 | .. | | 2 | 12 | 22 | 32 | 42 | .. | | 1 | 11 | 21 | 31 | 41 | .. | -------------------------------------------
现在我不是数学家(我现在或多或少是程序员),但我想出了:(F(y)=((MOD(x,10)-1)*10)+(1+((x-MOD(x,10))/10))
是x
顶部y
的预块中的值,是下面的预块中的值。 ) 现在这可以正常工作到某个点(例如10
)。
在 VBScript 中,我首先编写了以下内容:
函数 GetPosInSrcRack(Pos) Dim PlateDef(9), x, y, i, tmp ' 板定义 ReDim tmp(UBound(PlateDef)) 对于 x = 0 到 UBound(PlateDef) PlateDef(x) = tmp 下一个 我 = 1 对于 x = 0 到 UBound(PlateDef) For y = 0 To UBound(PlateDef(x)) PlateDef(x)(y) = i 我 = (我 + 1) 下一个 下一个 'Dim msg' 检查定义 '对于 x = 0 To (UBound(PlateDef)) ' msg = Join(PlateDef(x), ", ") & vbCrLf & msg '下一个 ' 获取位置 y = (pos Mod 10) x = ((pos - y) / 10) GetPosInSrcRack = PlateDef(y)(x) 结束功能
当然,这很有效,但很糟糕。
使用上面的公式我会写:
函数 GetPosInSrcRack(Pos) Pos = (((Pos MOD 10)-1)*10)+(1+((Pos - (Pos MOD 10))/10)) 结束功能
但就像我说的,这仍然是不正确的(10 给 -8)有人可以帮助我吗?