I have a matrix A stored in column major order as

1 3 2 4

and I'm using this function to output it in row major order, i.e.

1 2 3 4

which is does correctly. However I'm confused about how it does this, as I thought the loops would work by going i = 0 j =0, i = 0 j = 1, i = 1 j = 0, i = 1 j = 1.

But this would give me

data[0]

data[1]

data[2]

data[3]

my original matrix? Can anyone please explain this as I'm baffled?!

Thanks in advance!

```
void Matrix::WriteToFile(std::string fname) const
{
ofstream myfile;
myfile.open ( (fname+".txt").c_str() );
for (int i = 0; i<mdim_; i++)
{
for (int j = 0; j<ndim_; j++)
{
myfile << data_[i * ndim_ + j] << " ";
}
}
myfile.close();
}
```