求 将已知行数和列数的二维矩阵 存为一维形式的代码,该如何解决
求 将已知行数和列数的二维矩阵 存为一维形式的代码
跪求 已知行数m和列数n的二维矩阵 存为一维形式的代码转换代码
例 如下
如 已知二维数组 行数为3 列数为4
15 12 23 45
11 123 15 19
12 76 5 9
转化成以下形式
[15,12,23,45;11,123,15,19;12,76,5,9]
即 同行用","隔开 不同行用";"隔开
整个数组首尾用"[]" 标注
即要有二维转成一维的 也要有将一维恢复成二维的 代码
------解决方案--------------------
用这2个函数就行了
一个从矩阵转为字符串,一个从字符串转回去,
没有exception判断,如果需要你自己加上
跪求 已知行数m和列数n的二维矩阵 存为一维形式的代码转换代码
例 如下
如 已知二维数组 行数为3 列数为4
15 12 23 45
11 123 15 19
12 76 5 9
转化成以下形式
[15,12,23,45;11,123,15,19;12,76,5,9]
即 同行用","隔开 不同行用";"隔开
整个数组首尾用"[]" 标注
即要有二维转成一维的 也要有将一维恢复成二维的 代码
------解决方案--------------------
用这2个函数就行了
一个从矩阵转为字符串,一个从字符串转回去,
没有exception判断,如果需要你自己加上
- VB.NET code
Function mat2str(ByVal mat As Integer(,)) As String mat2str = "[" For row = LBound(mat, 1) To UBound(mat, 1) For col = LBound(mat, 2) To UBound(mat, 2) mat2str += CStr(mat(row, col)) mat2str += IIf(col = UBound(mat, 2), "", ",") Next mat2str += IIf(row = UBound(mat, 1), "]", ";") Next End Function Function str2mat(ByVal str As String) As Integer(,) Dim result As Integer(,) Dim rows As String(), cols As String() Dim row As Integer, col As Integer str = Replace(str, "[", "") str = Replace(str, "]", "") rows = Split(str, ";") row = UBound(rows) - LBound(rows) + 1 cols = Split(rows(0), ",") col = UBound(cols) - LBound(cols) + 1 ReDim result(row, col) For row = LBound(rows) To UBound(rows) cols = Split(rows(row), ",") For col = LBound(cols) To UBound(cols) result(row, col) = CInt(cols(col)) Next Next str2mat = result End Function