• Status: Solved
• Priority: Medium
• Security: Public
• Views: 251

# C++ Help Multiplying Matrices

Hello I would like help in multiplying 2 matrices in the attached code,  the 2 matrices being multiplied are the V_prime_matrix[6][1] and the d_prime_matrix[1][6] and the result matrix being f_bar would be a single number.

Can anyone help me?
QAP-EE-Code.txt
0
college_student
• 6
• 6
1 Solution

Commented:
>> result matrix being f_bar would be a single number.

That is right, in your special case the result of 'V_prime_matrix[6][1] * d_prime_matrix[1][6]' es quivalent to the scalar product (http://en.wikipedia.org/wiki/Scalar_product) - so you can rewrite your code to just one loop:

``````int f_bar = 0;
for (int i = 0; i < 6; i++)
{
f_bar += V_prime_matrix[x][0] * d_prime_matrix[0][i];
cout << f_bar << endl;
}
``````
0

Commented:
Ooops, that formatting is downright ugly, make that

``````int f_bar = 0;

for (int i = 0; i < 6; i++)
{
f_bar += V_prime_matrix[x][0] * d_prime_matrix[0][i];
cout << f_bar << endl;
}

``````
0

Author Commented:
thanks, but this didnt work. Im getting errors
0

Commented:
Um, what errors exactly?
0

Author Commented:
why did you change it to [x][0] and [0][1]? I dont understand that.
Also shouldnt it be f_bar[x][x] or something similar, not just f_bar by itself?
0

Author Commented:
Errors:

Error      1      error C2106: '+=' : left operand must be l-value      c:\users\carlosneal\documents\visual studio 2013\projects\consoleapplication4\consoleapplication4\source.cpp      52      1      ConsoleApplication4
2      IntelliSense: expression must be a modifiable lvalue      c:\Users\carlosneal\Documents\Visual Studio 2013\Projects\ConsoleApplication4\ConsoleApplication4\Source.cpp      52      3      ConsoleApplication4
0

Commented:
Ah, I see - sorry, but then make that

``````f_bar[0][0] = 0;

for (int i = 0; i < 6; i++)
{
f_bar[0][0] += V_prime_matrix[x][0] * d_prime_matrix[0][i];

}

cout << f_bar[0][0] << endl;

``````
0

Author Commented:
still getting errors, its saying that i and j are unreferenced local variables and x is unititialized local variable
0

Commented:
Copy and paste error, sorry again - the snippet should be

``````f_bar[0][0] = 0;

for (int i = 0; i < 6; i++)
{
f_bar[0][0] += V_prime_matrix[i][0] * d_prime_matrix[0][i];

}

cout << f_bar[0][0] << endl;

``````

And you should of course remove the declarations of the variables you aren't using any longer, if not, you get these warnings - so that is

``````int main()
{
display_opening_logo();
cout << setw(16) << SKIP << endl;

costMatrix();
int cost_of_original_layout = f_star();
cout << "Press <Enter> to coninue " << endl;
cout << setw(16) << SKIP << endl;
char ch = _getch();
cout << "The cost of the original existing layout is " << "\$" << cost_of_original_layout << endl;

for (int i = 0; i < 6; i++)
{
f_bar[0][0] += V_prime_matrix[i][0] * d_prime_matrix[0][i];
}

cout << f_bar[0][0] << endl;

system("PAUSE");
return 0;

}
``````
0

Author Commented:
Thanks it works now!!
0

Author Commented:
0

Commented:
You're most welcome ;o)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.