【问题标题】:How to calculate average in visual studio vb.net code ? (matrix)如何在 Visual Studio vb.net 代码中计算平均值? (矩阵)
【发布时间】:2022-01-17 23:23:41
【问题描述】:

我需要计算 vb.net

中矩阵元素的平均值

这是我的矩阵

5 2 1 2
5 5 2 -2
1 5 -1 1
1 -1 -5 -2

【问题讨论】:

  • 矩阵是如何定义的?
  • 要计算列和行的平均值吗?

标签: vb.net visual-studio matrix visual-studio-2019


【解决方案1】:

其中一个可能是你的“矩阵”

' multidimensional array
Dim m1(,) As Integer =
    {
        {5, 2, 1, 2},
        {5, 5, 2, -2},
        {1, 5, -1, 1},
        {1, -1, -5, -2}
    }
' jagged array
Dim m2()() As Integer =
    {
        New Integer() {5, 2, 1, 2},
        New Integer() {5, 5, 2, -2},
        New Integer() {1, 5, -1, 1},
        New Integer() {1, -1, -5, -2}
    }
' list of lists
Dim m3 = New List(Of List(Of Integer)) From
    {
        New List(Of Integer)() From {5, 2, 1, 2},
        New List(Of Integer)() From {5, 5, 2, -2},
        New List(Of Integer)() From {1, 5, -1, 1},
        New List(Of Integer)() From {1, -1, -5, -2}
    }

对于这些矩阵中的每一个,这里是计算平均值的方法

Dim a1 As Double
For i = m1.GetLowerBound(0) To m1.GetUpperBound(0)
    For j = m1.GetLowerBound(1) To m1.GetUpperBound(1)
        a1 += m1(i, j)
    Next
Next
a1 /= (m1.GetUpperBound(0) - m1.GetLowerBound(0) + 1) * (m1.GetUpperBound(1) - m1.GetLowerBound(1) + 1)

Dim a2 As Double
' count items because jagged array can have different # of items in each level
Dim c2 As Integer 
For i = m2.GetLowerBound(0) To m2.GetUpperBound(0)
    For j = m2(i).GetLowerBound(0) To m2(i).GetUpperBound(0)
        a2 += m2(i)(j)
        c2 += 1
    Next
Next
a2 /= c2

Dim a3 = m3.SelectMany(Function(l) l).Average()

Console.WriteLine($"Multidimensional avg: {a1}")
Console.WriteLine($"Jagged avg: {a2}")
Console.WriteLine($"List of List avg: {a3}")

多维平均:1.1875
锯齿状平均:1.1875
列表平均:1.1875

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 2013-01-04
    • 2014-01-21
    • 2011-04-23
    相关资源
    最近更新 更多