
Hi.
I am having trouble defining a diagonal matrix.
I am using code that is something like
public diagmatrix(numofm, numofm) as long
(numofm has been preset as some number)
but i'm getting an error message, "constant expression required". Thing is, to begin with, the number of columns and rows (square matrix) should be equal to "numofm"; this is because "numofm" will change on different occassions as selected by users and the code " public diagmatrix(numofm, numofm) as long" was meant to allow the matrix dimensions to change accordingly.
Secondly, the diagonal elements are dependent on other variables, say, 3 variables, temperature, pressure and thrust. This would thus require a 3by3 diagonal matrix. How would I define these diagonal elements ? Say, Row1, column 1 should be reciprocal of temp.
Row2, column 2 should be reciprocal of pressure
Row3, column 3 should be reciprocal of thrust
Every other element would ofcoure be zero, being a diagonal matrix.
Temp, pressure and thrust are variables and users can add to these, thus requiring a larger matrixor reduce these variables, thus requiring a smaller matrix.
Thanks.

You should declare the matrix like this:
public diagmatrix() as long
then in code you must dimension the matrix with:
redim diagmatrix(1 to numofm, 1 to numofm)
this can be done any number of times as required. Every time the matrix will be cleared.
I didn't understand the second part of your problem.

Thanks for the first part.
The second part well, imagine a 3 by 3 matrix. Row 1, Column 1 = some value, Row 2 Column 2 = some value and Row 3, Column 3 = some value. Everything else in the matrix = 0. How do you do that in VB 6 ?

Thanks for the first part. The second part well, imagine a 3 by 3 matrix. Row 1, Column 1 = some value, Row 2 Column 2 = some value and Row 3, Column 3 = some value. Everything else in the matrix = 0. How do you do that in VB 6 ?

diagmatrix(1,1) = some value
diagmatrix(2,2) = some value
diagmatrix(3,3) = some value
Everything else is zero, because the REDIM statement clears the matrix.

Thanks very much, your assistance has been quite useful.
Just one more thing now; I need to write this matrix to a text file somewhere, and then read it when I need it. The writing part is okay, no problem. The reading part however is a problemhow do you read a matrix from a file and use it in your VB program ? Character by character or as a whole ? And what would be the syntax ?
Thanks.

diagmatrix(1,1) = some value
diagmatrix(2,2) = some value
diagmatrix(3,3) = some value
good code
[ahşap dekorasyon ](http://www.ahsapdekorasyonbul.com)

Whenever I need to save values to a text file and then read them back, I use something like this:
To write the data:
FH = FreeFile
OPEN FileName FOR OUTPUT AS #FH
WRITE #FH, diagmatrix(1,1)
WRITE #FH, diagmatrix(2,2)
WRITE #FH, diagmatrix(3,3)
CLOSE #FH
To read it back:
FH = FreeFile
OPEN FileName FOR INPUT AS #FH
INPUT #FH, diagmatrix(1,1)
INPUT #FH, diagmatrix(2,2)
INPUT #FH, diagmatrix(3,3)
CLOSE #FH
I have a question, why do you need a matrix ?, why not use just a single dimension array ?

Thanks very much for the code.
I am using a matrix just coz the discipline i'm applying it to uses matrices and it's even easier for me to think of the variables as matrices and not single dimension arrays.
Once again, thankyou very much for the code. God bless you.
Enter your message below
Sign in or Join us (it's free).