ম্যাট্রিক্সের ট্রান্সপোজ
একটি ম্যাট্রিক্সের ট্রান্সপোজ হল সেটি যার সারি গুলো মূল ম্যাট্রিক্সের কলাম গুলো। অর্থাৎ যদি A এবং B দুটি ম্যাট্রিক্স হয় যাতে ম্যাট্রিক্স B-এর সারি গুলো ম্যাট্রিক্স A-এর কলাম গুলো হয়, তবে ম্যাট্রিক্স B কে ম্যাট্রিক্স A-এর ট্রান্সপোজ বলা হয়।
m(i,j) ম্যাট্রিক্সকে m(j,i) এ রূপান্তর করার লজিক নিম্নরূপ:
for (i = 0; i < m; i++) for (j = 0; j < n; j++) transpose[j][i] = matrix[i][j];
প্রোগ্রাম ১
এই উদাহরণে, আমরা for loop ব্যবহার করে একটি ম্যাট্রিক্সের ট্রান্সপোজ প্রিন্ট করব।
#includeint main(){ int m, n, i, j, matrix[10][10], transpose[10][10]; printf("সারি এবং কলাম লিখুন:\n"); scanf("%d%d", &m, &n); printf("ম্যাট্রিক্সের উপাদানগুলি লিখুন\n"); for (i = 0; i < m; i++) for (j = 0; j < n; j++) scanf("%d", &matrix[i][j]); for (i = 0; i < m; i++) for (j = 0; j < n; j++) transpose[j][i] = matrix[i][j]; printf("ম্যাট্রিক্সের ট্রান্সপোজ:\n"); for (i = 0; i < n; i++) { for (j = 0; j < m; j++) printf("%d\t", transpose[i][j]); printf("\n"); } return 0; }
আউটপুট
সারি এবং কলাম লিখুন: 2 3 ম্যাট্রিক্সের উপাদানগুলি লিখুন 1 2 3 2 4 5 ম্যাট্রিক্সের ট্রান্সপোজ: 1 2 2 4 3 5
প্রোগ্রাম ২
#include#define ROW 2 #define COL 5 int main(){ int i, j, mat[ROW][COL], trans[COL][ROW]; printf("ম্যাট্রিক্স লিখুন: \n"); // ইনপুট ম্যাট্রিক্স for(i = 0; i < ROW; i++){ for(j = 0; j < COL; j++){ scanf("%d", &mat[i][j]); } } // ট্রান্সপোজ তৈরি করুন for(i = 0; i < ROW; i++){ for(j = 0; j < COL; j++){ trans[j][i] = mat[i][j]; } } printf("\nট্রান্সপোজ ম্যাট্রিক্স: \n"); // ট্রান্সপোজ প্রিন্ট করুন for(i = 0; i < COL; i++){ for(j = 0; j < ROW; j++){ printf("%d ", trans[i][j]); } printf("\n"); } return 0; }
আউটপুট
ম্যাট্রিক্স লিখুন: 1 2 3 4 5 5 4 3 2 1 ট্রান্সপোজ ম্যাট্রিক্স: 1 5 2 4 3 3 4 2 5 1