March 29th, 2007, 10:17 am
Hi, I have created a COM component and want to access the function via visual basic 2005. the built COM object is based on following simple M-File: function a = regLinear(x,y) X = [ones(size(x)) x ]; a = X\y; all I want to do is pass x and y vector via visual basic and let Matlab calculate the linear regression coefficients. when I use the m-file via matlab the function is correct e.g. x = [0 .3 .8 1.1 1.6 2.3]' y = [0.5 0.82 1.14 1.25 1.35 1.40]' >> reglinear(x,y) ans = 0.6955 0.3749 Unfortunately VB2005 returnes a completely wrong result Dim Regression As RegressionML.RegressionMLclass Dim a As Object 'regression coefficients Dim X1(5) As Double 'if I specify X1 or Y1 as Object I get an error: Function 'mldivide' is not defined for values of class 'cell'. Dim Y1(5) As Double Regression = New RegressionML.RegressionMLclass X1(0) = 0 X1(1) = 0.3 X1(2) = 0.8 X1(3) = 1.1 X1(4) = 1.6 X1(5) = 2.3 Y1(0) = 0.5 Y1(1) = 0.82 Y1(2) = 1.14 Y1(3) = 1.25 Y1(4) = 1.35 Y1(5) = 1.4 Regression.reglinear(1, a, X1, Y1) my returned object looks like this although it should only have 2 dimensions. Does anyone have an idea what I am doing wrong? ?? Thanks - a {System.Array} Object (1,1) 0.0 Double (1,2) 0.0 Double (1,3) 0.0 Double (1,4) 0.0 Double (1,5) 0.0 Double (1,6) 0.0 Double (2,1) 0.0 Double (2,2) 0.0 Double (2,3) 0.0 Double (2,4) 0.0 Double (2,5) 0.0 Double (2,6) 0.0 Double (3,1) 0.0 Double (3,2) 0.0 Double (3,3) 0.0 Double (3,4) 0.0 Double (3,5) 0.0 Double (3,6) 0.0 Double (4,1) 0.0 Double (4,2) 0.0 Double (4,3) 0.0 Double (4,4) 0.0 Double (4,5) 0.0 Double (4,6) 0.0 Double (5,1) 0.0 Double (5,2) 0.0 Double (5,3) 0.0 Double (5,4) 0.0 Double (5,5) 0.0 Double (5,6) 0.0 Double (6,1) 0.0 Double (6,2) 0.0 Double (6,3) 0.0 Double (6,4) 0.0 Double (6,5) 0.0 Double (6,6) 0.0 Double (7,1) 0.0 Double (7,2) 0.0 Double (7,3) 0.0 Double (7,4) 0.0 Double (7,5) 0.0 Double (7,6) 0.0 Double (8,1) 0.0 Double (8,2) 0.0 Double (8,3) 0.0 Double (8,4) 0.0 Double (8,5) 0.0 Double (8,6) 0.0 Double (9,1) 0.0 Double (9,2) 0.0 Double (9,3) 0.0 Double (9,4) 0.0 Double (9,5) 0.0 Double (9,6) 0.0 Double (10,1) 0.0 Double (10,2) 0.0 Double (10,3) 0.0 Double (10,4) 0.0 Double (10,5) 0.0 Double (10,6) 0.0 Double (11,1) 0.0 Double (11,2) 0.0 Double (11,3) 0.0 Double (11,4) 0.0 Double (11,5) 0.0 Double (11,6) 0.0 Double (12,1) 0.21739130434782611 Double (12,2) 0.35652173913043478 Double (12,3) 0.4956521739130435 Double (12,4) 0.5434782608695653 Double (12,5) 0.58695652173913049 Double (12,6) 0.60869565217391308 Double