ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Class Modules (https://www.excelbanter.com/excel-programming/380356-class-modules.html)

STIG

Class Modules
 
Hi!
In a class module I have declared a matrix ( name(120,120) as double), i
have a sub procedure that does som calculations, so that I have the
information I want to use for calculations stored in that matrix. In a
generall module procedures I want to have access to a column of this matrix,
but I haven't got a clue as how to get hold of it. Preferably I would like
to assign a double variable of length 120 the contents of a column of my
choice belonging to an instance of that class.
Since the variable is of type (120,120)double I can not access it in the
usual way by the syntax object.matrix(i,j). Also, is there a way of selecting
multiple indexes in a vector? In computer algebra software such as
Matlab,S-plus or R, I am used to be able to specify a particular range of
indexes , i.e matrix(1:90,120) where 1:90 is row 1 to 90, and 120 the 120th
column. Is there any way of doing such an opperation using VBA/Excel.
Any suggestion on how to solve my problem, or links to sites where I can
read up on these matters will be greatly apprectiated.

Stig

Bob Phillips

Class Modules
 
I know of no built-in functionality to achieve it, but it should be
relatively simple to craft your own methods/properties to achieve this,
loading it into a new array and returning that.

--
---
HTH

Bob

(change the xxxx to gmail if mailing direct)


"STIG" wrote in message
...
Hi!
In a class module I have declared a matrix ( name(120,120) as double), i
have a sub procedure that does som calculations, so that I have the
information I want to use for calculations stored in that matrix. In a
generall module procedures I want to have access to a column of this
matrix,
but I haven't got a clue as how to get hold of it. Preferably I would
like
to assign a double variable of length 120 the contents of a column of my
choice belonging to an instance of that class.
Since the variable is of type (120,120)double I can not access it in the
usual way by the syntax object.matrix(i,j). Also, is there a way of
selecting
multiple indexes in a vector? In computer algebra software such as
Matlab,S-plus or R, I am used to be able to specify a particular range of
indexes , i.e matrix(1:90,120) where 1:90 is row 1 to 90, and 120 the
120th
column. Is there any way of doing such an opperation using VBA/Excel.
Any suggestion on how to solve my problem, or links to sites where I can
read up on these matters will be greatly apprectiated.

Stig




Dana DeLouis

Class Modules
 
In computer algebra software such as
Matlab,S-plus or R, I am used to be able to specify a particular range of
indexes , i.e matrix(1:90,120) where 1:90 is row 1 to 90, and 120 the
120th


Hi. Not sure if this could help or not.
You may be able to take an entire column, but it is hard to take parts of a
single array.
Here, V is made of "All" Rows of the second Column.
Then, Redim is used to shrink the array down to the first two values.
It won't work if the index doesn't start at 1.

Sub Demo()
Dim Fx As WorksheetFunction
Dim M(), V
Const All As Long = 0

Set Fx = WorksheetFunction
M = [{1,2,3;4,5,6;7,8,9}]
V = Fx.Transpose(Fx.Index(M, All, 2))
ReDim Preserve V(1)
End Sub


It's kind of similar to math programs...
M = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

M[[All,2]]
{2, 5, 8}

Does making your Matrix a Public variable help?
--
HTH :)
Dana DeLouis
Windows XP & Office 2003


"STIG" wrote in message
...
Hi!
In a class module I have declared a matrix ( name(120,120) as double), i
have a sub procedure that does som calculations, so that I have the
information I want to use for calculations stored in that matrix. In a
generall module procedures I want to have access to a column of this
matrix,
but I haven't got a clue as how to get hold of it. Preferably I would
like
to assign a double variable of length 120 the contents of a column of my
choice belonging to an instance of that class.
Since the variable is of type (120,120)double I can not access it in the
usual way by the syntax object.matrix(i,j). Also, is there a way of
selecting
multiple indexes in a vector? In computer algebra software such as
Matlab,S-plus or R, I am used to be able to specify a particular range of
indexes , i.e matrix(1:90,120) where 1:90 is row 1 to 90, and 120 the
120th
column. Is there any way of doing such an opperation using VBA/Excel.
Any suggestion on how to solve my problem, or links to sites where I can
read up on these matters will be greatly apprectiated.

Stig





All times are GMT +1. The time now is 05:33 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com