Из данной матрицы построить новую матрицу, по среднему арифметическому соседей - VBA
Формулировка задачи:
Друзья нужна ваша помощь, в общем задача такая. У каждого элемента есть соседи у некоторых слева, справа, снизу, сверху у некоторых только справа и снизу, в общем нужно обновить каждый элемент матрицы по среднему арифметическому его соседей.
написал вот так вот, почему то работает не правильно!
Решение задачи: «Из данной матрицы построить новую матрицу, по среднему арифметическому соседей»
textual
Листинг программы
Sub Matrix()
Dim i As Long, j As Long
Dim arf As Double, k As Long, n As Long, b As Long
n = InputBox("Введите количество строк: ", , 4)
b = InputBox("Введите количество столбцов: ", , 3)
ReDim M(1 To n, 1 To b) As Double, X(1 To n, 1 To b) As Double
For i = 1 To n
For j = 1 To b
M(i, j) = InputBox("x(" & i & ", " & j & ")", , Round(Rnd * 10, 1))
Next
Next
On Error Resume Next
For i = 1 To n
For j = 1 To b
arf = arf + M(i - 1, j)
If Err Then Err.Clear Else k = k + 1
arf = arf + M(i, j - 1)
If Err Then Err.Clear Else k = k + 1
arf = arf + M(i + 1, j)
If Err Then Err.Clear Else k = k + 1
arf = arf + M(i, j + 1)
If Err Then Err.Clear Else k = k + 1
X(i, j) = arf / k
k = 0
arf = 0
Next
Next
'вывод на лист Excel
Cells(1, 1).Resize(n, b).Value = M
Cells(n + 2, 1).Resize(n, b).Value = X
'For i = 1 To n
' For j = 1 To b
' MsgBox (M(i, j))
' Next
'Next
End Sub