大家好!我目前正在尝试在 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)有人可以帮助我吗?