Problem bei Nutzung von WorksheetFunction

magnificent

Mitglied
Hallo.
Da ich die Korrelation zwischen Verschiedenen Vektoren (Daten sind von mir in einem Vektor gespeichert) berechnen muss und als Vorlage eine Excel Datei hatte, wollte ich nun auch die Funktion KORR in .net nutzen. Dafür habe ich die WorksheetFunction Correl genutzt, aber ich bekomme den erhaltenen Wert nur in eine Variable (scheint wohl nur eine Referenz zu sein) jedoch aus dieser Variable nicht in eine Matrix (die verschiedenen Korrelationen sollen für die weitere Verarbeitung in einer Matrix festgehalten werden). Wie kann ich das Problem lösen?
Code:
Imports Excel = Microsoft.Office.Interop.Excel

Public Class Form1
    Inherits System.Windows.Forms.Form


    Dim VDet1() As Single = {2, 5, 8, 5, 3, 9, 1, 5, 2, 9}
    Dim VDet2() As Single = {2.3, 5.75, 9.2, 5.75, 3.45, 10.35, 1.15, 5.75, 2.3, 10.35}
    Dim VDet3() As Single = {5, 3, 9, 9, 1, 2, 7, 8, 8, 1}
    Dim VDet4() As Single = {6.4, 8.4, 16.8, 13.2, 4.4, 12.4, 6.8, 12.4, 8.8, 11.6}
    Dim VDet5() As Single = {2, 5, 2, 1, 2, 1, 8, 9, 9, 9}
    Dim VDet6() As Single = {1, 2, 4, 5, 6, 3, 1, 7, 8, 2}
    Dim VDet7() As Single = {2, 5, 8, 5, 8, 4, 2, 8, 2, 9}
    Dim VDet8() As Single = {3, 6, 3, 6, 5, 8, 2, 4, 3, 8}
    Dim VDet9() As Single = {5, 7, 6, 7, 5, 7, 3, 2, 5, 7}
    Dim VDet10() As Single = {8, 8, 11, 15, 13, 12, 16, 15, 18, 2}
    Dim VDet11() As Single = {2, 1, 2, 5, 3, 3, 9, 4, 2, 9}
    Dim VDet12() As Single = {10, 5, 8, 3, 9, 2, 10, 5, 2, 9}
    Dim VDet13() As Single = {7, 1, 3, 1, 8, 6, 7, 8, 1, 6}
    Dim VDet14() As Single = {2, 15, 28, 15, 23, 9, 21, 15, 22, 11}
    Dim VDet15() As Single = {1, 3, 4, 8, 7, 3, 5, 6, 4, 2}
    Dim VDet16() As Single = {7, 4, 9, 4, 3, 9, 3, 1, 5, 3}
    Dim VDet17() As Single = {2, 5, 4, 5, 3, 4, 9, 5, 2, 9}
    Dim VDet18() As Single = {3, 2, 9, 6, 3, 2, 6, 4, 7, 3}
    Dim VDet19() As Single = {5, 2, 5, 8, 9, 3, 4, 3, 4, 5}
    Dim VDet20() As Single = {9, 2, 5, 1, 9, 2, 3, 4, 7, 2}
    Dim Zeile As Integer
    Dim Spalte As Integer
    Public KorrMatrix(,) As Single   'Enthält die einzelnen Korrelationen der Detektorenwerte
    Dim xlApp As Excel.Application = New Excel.Application  'Erzeugung eines Excelapplication Objektes



    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Dim xlApp As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application 'Erzeugung eines Excelapplication Objektes
        'Dim xlWkb As Microsoft.Office.Interop.Excel.Workbook = New Microsoft.Office.Interop.Excel.Workbook
        'Dim xlWks As Microsoft.Office.Interop.Excel.WorksheetFunction = DirectCast(xlWkb.ActiveSheet, Microsoft.Office.Interop.Excel.WorksheetFunction)
        'Dim xlWksF As Microsoft.Office.Interop.Excel.WorksheetFunction 
        ' Dim Korrelation As Double = xlApp.WorksheetFunction.Correl(VDet1, VDet3)


        KorrMatrix = fct_KorrMatrixBerechnen()
    End Sub

    Public Function fct_KorrMatrixBerechnen() As Single(,)
        Dim Korrelation As Double
        For Zeile = 0 To 19
            For Spalte = 0 To 19

                Korrelation = xlApp.WorksheetFunction.Correl(VDet1, VDet3)
                KorrMatrix(Zeile, Spalte) = Korrelation

               'KorrMatrix(Zeile, Spalte) = xlApp.WorksheetFunction.Correl(VDet1, VDet3)

            Next Spalte
        Next Zeile
        Return KorrMatrix

    End Function
End Class

Thx :)
 

Neue Beiträge

Zurück