Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 240
  • Last Modified:

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
Asked:
college_student
  • 6
  • 6
1 Solution
 
jkrCommented:
>> 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;
				}

Open in new window

0
 
jkrCommented:
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;
	}
            

Open in new window

0
 
college_studentAuthor Commented:
thanks, but this didnt work. Im getting errors
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
jkrCommented:
Um, what errors exactly?
0
 
college_studentAuthor 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
 
college_studentAuthor 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
 
jkrCommented:
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;
            
                                            

Open in new window

0
 
college_studentAuthor Commented:
still getting errors, its saying that i and j are unreferenced local variables and x is unititialized local variable
0
 
jkrCommented:
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;
                                    

Open in new window


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;

}

Open in new window

0
 
college_studentAuthor Commented:
Thanks it works now!!
0
 
college_studentAuthor Commented:
Very helpful and resourceful!!
0
 
jkrCommented:
You're most welcome ;o)
0

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 6
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now