نحوه تبدیل ماتریس سطری به ستونی و برعکس در متلب
در محاسبات عددی و برنامهنویسی، ماتریسها نقش اساسی و مهمی ایفا میکنند. ماتریسها در بسیاری از زمینههای علمی و مهندسی مورد استفاده قرار میگیرند. تبدیل ماتریس سطری به ستونی به معنی انتقال سطرها به ستونها و بالعکس است که به آن ترنسپوز یا ترانهاده ماتریس نیز گفته میشود.
کاربردهای تبدیل ماتریس سطری به ستونی عبارتند از:
• حل معادلات خطی: در برخی از روشهای حل معادلات خطی نیاز به ترانهاده ماتریس وجود دارد.
• ضرب ماتریسی: در ضرب دو ماتریس، گاهاً نیاز است یکی از ماتریسها ترانهاده شود تا امکان ضرب وجود داشته باشد.
• تحلیل دادهها: در تحلیل دادهها، برای تطابق دادهها ممکن است نیاز باشد که ماتریس دادهها ترانهاده شود
برای این کار، در متلب از تابع transpose یا اپراتور پریم (‘) استفاده میشود.
تبدیل ماتریس ها در زمینه ی پروژه های مختلف نقش مهمی ایفا میکنند برای مثال در انجام پروژه متلب و دیگر پروژه ها کاربرد فراوانی دارد و این پروژه ها توسط کارشناسان متخصص در پروژستان قابل انجام میباشد.
نحوه استفاده از دستوری transpose بصورت زیر است:
T = transpose(A);
مثال 1: استفاده از ترنسپوز یا اپراتور ‘ برای ترانهاده ماتریس
clc; clear; close all
A = [1 17 3; 24 5 36]
T1 = A’
T2 =transpose(A)
خروجی برنامه:
A = 1 17 3
24 5 36
T1 = 1 24
17 5
3 36
T2 = 1 24
17 5
3 36
توضیح : ماتریس A دارای ابعاد 2*3 است و ابعاد ماتریس T1 یا T2 داریا ابعاد 3*2 است. عناصر موجود در سطر ماتریس A به ستون T1 یا T2 و برعکس جابجا شده اند.
مثال 2: تفاوتtranspose و پریم (‘ ) در متلب
در متلب، دو روش برای ترنسپوز یا ترانهاده کردن ماتریسها وجود دارد: اپراتور ‘ و تابع transpose. اما اپراتور پریم علاوه بر ترانهاده کردن، عمل هممزدوج مختلط (conjugate transpose) را نیز انجام میدهد. اگر ماتریس شامل اعداد مختلط است و نمیخواهید عمل مزدوج مختلط انجام شود، میتوان از اپراتور پریم استفاده کرد.
clc; clear; close all
A = [1+2i, 3+4i; 5+6i, 7+8i]
P=A’
T=transpose(A)
خروجی برنامه:
A =
1+ 2 i 3+ 4 i
5+ 6 i 7+ 8 i
P =
1- 2 i 5- 6 i
3- 4 i 7- 8 i
T =
1+ 2 i 5+ 6 i
3+ 4 i 7+ 8 i
توضیح: ماتریس T تنها ترنسپوز شده است ولی ماتریس p علاوه بر ترنسپوز شدن، مزدوج عناصر آن هم اعمال شده است.
مثال 3: ترکیب و مقایسه ماتریسهای سطری و ستونی
گاهی اوقات نیاز است ماتریسهای سطری و ستونی با هم ترکیب شوند یا با یکدیگر مقایسه گردند. برای این کار، از توابع و اپراتورهای خاصی در متلب استفاده میشود
clc; clear; close all
rowVec = [10 2 3]
colVec = [40; 5; 6]
C = [rowVec; colVec’]
خروجی برنامه:
rowVec =
10 2 3
colVec =
40
5
6
C =
10 2 3
40 5 6
توضیح: در این برنامه ماتیس ستونی (colVec) ترنسپوز شده است. باید توجه داشت که تعداد سطر با تعداد ستون بایستی برابر باشد والا برنامه خطا خواهد داشت.
مثال 4: تابع مشابه پریم یاctranspose در متلب
دستور یاctranspose عملیات ترانهاده مزدوج مختلط را انجام میدهد و معادل استفاده از ‘ است:
clc; clear; close all
A = [1+2i, 3+4i; 5+6i, 7+8i]
P=A’
T=ctranspose(A)
خروجی برنامه:
A = 1 + 2 i 3 + 4 i
5 + 6 i 7 + 8 i
P = 1 – 2 i 5 – 6 i
3 – 4 i 7 – 8 i
T = 1 – 2 i 5 – 6 i
3 – 4 i 7 – 8 i
مثال5- مشابه تابع transpose- دستور reshape
گاهی تابعreshape برای تغییر ابعاد ماتریس بدون تغییر در ترتیب عناصر آن استفاده میشود. این تابع برای تبدیل ماتریسهای سطری به ستونی و برعکس مفید است اما به طور مستقیم عمل ترانهاده را انجام نمیدهد.
clc; clear; close all
A = [1 2 3 4];
R = reshape(A, [4, 1])
T =transpose(A)
خروجی برنامه:
R = 11 12 30 14
T = 11 12 30 14
مثال6- ترانهاده در عملیات ضرب ماتریسی
در ضرب دو ماتریس، گاهی لازم است یکی از ماتریسها ترانهاده شود تا عمل ضرب امکانپذیر گردد.
مثال: ضرب ماتریسی با ترانهاده
clc; clear; close all
A = [1 2; 13 4];
T = [9 60; 7 8];
C = A * T’
خروجی برنامه:
C = 129 23
357 123
مثال 7: پردازش تصویر و چرخش تصویر با استفاده از ترانهاده
در پردازش تصویر، تصاویر به صورت ماتریسهای دو بعدی یا سه بعدی نمایش داده میشوند. تبدیل و ترانهاده این ماتریسها برای اعمال فیلترها یا تغییر زاویه تصویر مفید است.
برای چرخش 90 درجهای این تصویر بصورت ماتریس 2*2، میتوان از ترکیب ترانهاده و معکوس کردن سطرها یا ستونها استفاده کرد.
clc; clear; close all
img= (‘ngc6543a.jpg’); % بارگذاری تصویر
Img_gray = rgb2gray(img); % تبدیل به مقیاس خاکستری
Img_rotated = rot90(img_gray, 1); % چرخش 90 درجه
Imshow(img_rotated); % نمایش تصویر چرخیده
خروجی برنامه:
توضیح: از تابعrot90 که به طور داخلی از ترانهاده استفاده میکند، برای چرخش تصویر استفاده شده است.
اگر شما به دنبال آموزش ماتریس ها در نرم افزار متلب هستید، مقالات زیر مخصوص شماست.