Gregory Lypny <[EMAIL PROTECTED]> asked... > Hi Everyone, > > I'm having trouble with matrixMultiply. I've created two 1 x 20 > vectors (arrays) named Prob and V. I want to compute the dot product > (for example, the expected value of V in statistics), which is > > prob[1] x V[1] + prob[2] x V[2] + ... + prob[20] x V[20] > > but it's not clear whether MetaCard treats vectors as columns or > rows by default. All of the following result in error messages: > > matrixMultiply(prob,V) > > matrixMultiply(transpose(prob),V) > > matrixMultiply(prob,transpose(V)) > > Any help would be much appreciated. > > Regards, > > Greg >
transpose does not work on single column vectors. Transpose takes the index [i,j] and replaces it with [j,i]. In your case, you need to create your vectors as prob[i,j]. Transpose ought to work then. Or you could just do this (and it might be a bit faster even): function dotp x,y if keys(x) = keys(y) then repeat for each line i in keys(x) add x[i]*y[i] to sum end repeat return sum end dotp > Gregory Lypny > Concordia University > ___________________ > "Better for us if you don't understand." > The Tragically Hip > > http://rubbersoul.concordia.ca > Raymond _______________________________________________ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard