On Sat, Jun 21, 2008 at 05:29:14AM -0400, Hatef Monajemi wrote:
Hi
Isn't this code supposed to work? It gives me "invalid lvalue in
assignment" error while compiling. How should I assign the elements of
a Matrix???
//-------------------------------
int main()
{
for(i=0; i<nens; i++)
.
.
.
real* values = new real[nstat];
u1.interpolate(values);
Matrix S(nstat,nens);
for(int j=0;j<nstat;j++)
{
S(j,i)=values[j];
}
}
Sorry, this doesn't work yet.
We can easily fix this in the GenericMatrix interface by adding an
auxiliary class MatrixEntry (which just holds (i, j) and a reference
to the matrix) and have operator() return that, then overload
operator= in MatrixEntry to assign to the matrix.
We had this in DOLFIN 2-3 years back but the linear algebra has gone
through several reimplementations since then...
Until this has been implemented, you can use the setitem() function.