我有一个function。 他的给入值是 一个 一维数组, 但是我现在所有的值都储存在一个二维数组里。 我怎么吧 比如说 二维数组里的第1个数组 给进去参与计算,然后第2第3个?我现在就是不知道怎么吧二维数组在 vb里分解成 一维数组。在 c语言里 可以定义一个 matrix(n,n), 然后通过 matrix(1) 获取第一行的数组。可是在vb里怎么实现呢?
解决方案 »
- 怎么才能让程序只运行一次?也就是在第二次运行时能检测到已经运行了?
- WINDOWS下有一被独占方式打开的文件,如何拷贝走它?
- 在运行VB程序时,提示“object variable or with block variable not set ”是什么原因呀?
- 现在用户ACCESS数据库版本大都不同,如何在ADO设置呢?
- 我想按Alt+Enter组合键来试窗口最大化,该怎么做??
- 关于VB操控XCEL的问题
- 在一个text里,只允许输入格式为###.## 2位小数的数字。如果输入整数,自动变为 .00 必给分!谢谢先!
- richtextbox问题(在线等)
- *.FRM文件前面的这些是什么意思?
- MTS组件为什么会一直处于调用状态?
- 支持真彩色图标另类自定义listview控件源码
- 老是出错,求助,关于RECORDSET
matrix1(i)=matrix(1,n)
next变量名不可以这么重复定义啊
你换个名
是 在 c语言里 可以定义一个 matrix[n][m], 然后通过比如说 matrix[1] 获取第一行的数组。可是在vb里怎么实现呢?
哪位高人指点一下吧。
Dim I(5) As Long
Dim L(1, 2) As LongDim K As Long
Dim M As LongFor K = 0 To 1
For M = 0 To 2
L(K, M) = K * 10 + M
Next
Next
CopyMemory I(0), L(0, 0), 24
For M = 0 To 5
Debug.Print "I(" & M & ")=" & Format(I(M), "00")
Next
End Sub二维数组L的内容一次性复制到一维数组I中了.
从输出的结果中可以看出二维数组的实际存储顺序是总最左面的那一维开始的,而并非习惯上认为的从右面那一维开始.
因此,楼主如果要用这个方法的话,要需要先把你那个二维数组的输入方式改成从左到右才行
可能我没有清除的表达我的意思吧。
我现在有个matrix,n行,m列。
然后我又有个比如说计算平均值的函数 calculateMean(array1 as variable,array2 as variable), 现在我需要计算出matrix里每一行的数的平均值,我怎么把matrix里每一行当作一个一维数组(array)直接使用呢? 我本来想 直接提取,就像c#一样 calculateMean(matrix(1),matrix(2)),但是在vb里这样不行。现在我我弄了个for,同过两个临时数组tempArray来解决,真的是很恶心的方法。一想到我就睡不着。呵呵~For j = 1 To MatrixColumnCount
TempArrayA(j) = MyMatrix(1, j)
Next j
For i = 2 To MatrixRowCount
For j = 1 To MatrixColumnCount
TempArrayB(j) = MyMatrix(i, j)
Next j
If Calc_AandB(TempArrayA, TempArrayB, A, B) Then
End If
ResultArray(i - 1, 1) = B
ResultArray(i - 1, 2) = A
ResultArray(i - 1, 3) = i
Next i