একটি ম্যাট্রিক্স হল সংখ্যার একটি আয়তক্ষেত্রাকার বিন্যাস যা সারি এবং কলামের আকারে সাজানো হয়।
ম্যাট্রিক্সের একটি উদাহরণ নিম্নরূপ।
একটি 3*3 ম্যাট্রিক্সে 3টি সারি এবং 3টি কলাম রয়েছে যা নীচে দেখানো হয়েছে −
8 6 3 7 1 9 5 1 9
একটি প্রোগ্রাম যা বহুমাত্রিক অ্যারে ব্যবহার করে দুটি ম্যাট্রিক্সকে গুণ করে তা নিম্নরূপ।
উদাহরণ
#include<iostream> using namespace std; int main() { int product[10][10], r1=2, c1=3, r2=3, c2=3, i, j, k; int a[2][3] = { {2, 4, 1} , {2, 3, 9} }; int b[3][3] = { {1, 2, 3} , {3, 6, 1} , {2, 9, 7} }; if (c1 != r2) { cout<<"Column of first matrix should be equal to row of second matrix"; } else { cout<<"The first matrix is:"<<endl; for(i=0; i<r1; ++i) { for(j=0; j<c1; ++j) cout<<a[i][j]<<" "; cout<<endl; } cout<<endl; cout<<"The second matrix is:"<<endl; for(i=0; i<r2; ++i) { for(j=0; j<c2; ++j) cout<<b[i][j]<<" "; cout<<endl; } cout<<endl; for(i=0; i<r1; ++i) for(j=0; j<c2; ++j) { product[i][j] = 0; } for(i=0; i<r1; ++i) for(j=0; j<c2; ++j) for(k=0; k<c1; ++k) { product[i][j]+=a[i][k]*b[k][j]; } cout<<"Product of the two matrices is:"<<endl; for(i=0; i<r1; ++i) { for(j=0; j<c2; ++j) cout<<product[i][j]<<" "; cout<<endl; } } return 0; }
আউটপুট
The first matrix is: 2 4 1 2 3 9 The second matrix is: 1 2 3 3 6 1 2 9 7 Product of the two matrices is: 16 37 17 29 103 72
উপরের প্রোগ্রামে, দুটি ম্যাট্রিক্স a এবং b নিম্নরূপ শুরু করা হয়েছে।
int a[2][3] = { {2, 4, 1} , {2, 3, 9} }; int b[3][3] = { {1, 2, 3} , {3, 6, 1} , {2, 9, 7} };
যদি প্রথম ম্যাট্রিক্সের কলামের সংখ্যা দ্বিতীয় ম্যাট্রিক্সের সারির সংখ্যার সমান না হয় তাহলে গুণন করা যাবে না। এই ক্ষেত্রে একটি ত্রুটি বার্তা প্রিন্ট করা হয়. এটি নিম্নরূপ দেওয়া হল।
if (c1 != r2) { cout<<"Column of first matrix should be equal to row of second matrix"; }
একটি নেস্টেড ফর লুপ ব্যবহার করে ম্যাট্রিক্স a এবং b উভয়ই প্রদর্শিত হয়। এটি নিম্নলিখিত কোড স্নিপেট দ্বারা প্রদর্শিত হয়৷
৷cout<<"The first matrix is:"<<endl; for(i=0; i<r1; ++i) { for(j=0; j<c1; ++j) cout<<a[i][j]<<" "; cout<<endl; } cout<<endl; cout<<"The second matrix is:"<<endl; for(i=0; i<r2; ++i) { for(j=0; j<c2; ++j) cout<<b[i][j]<<" "; cout<<endl; } cout<<endl;
এর পরে, গুণফল[][] ম্যাট্রিক্সটি 0-তে আরম্ভ করা হয়। তারপর a এবং b 2টি ম্যাট্রিক্সের গুণফল বের করতে একটি নেস্টেড ফর লুপ ব্যবহার করা হয়। এটি নীচের কোড স্নিপেটে প্রদর্শিত হয়৷
৷for(i=0; i<r1; ++i) for(j=0; j<c2; ++j) { product[i][j] = 0; } for(i=0; i<r1; ++i) for(j=0; j<c2; ++j) for(k=0; k<c1; ++k) { product[i][j]+=a[i][k]*b[k][j]; }
পণ্যটি পাওয়ার পরে, এটি মুদ্রিত হয়। এটি নিম্নরূপ দেখানো হয়েছে৷
cout<<"Product of the two matrices is:"<<endl; for(i=0; i<r1; ++i) { for(j=0; j<c2; ++j) cout<<product[i][j]<<" "; cout<<endl; }