ضرب ماتریس در MATLAB
نرم افزار متلب، ابزار قدرتمندی برای انجام این عملیاتهای ماتریس است و به راحتی میتوان از آن برای محاسبات ماتریسی استفاده کرد.
ضرب ماتریسی(Matrix Multiplication) برای ضرب دو ماتریس بکار میرود و عملیات ضرب عنصر به عنصر (Element-wise Multiplication) یا ضرب نقطه (Hadamard Product) نیز برای ضرب تک تک عناصر ماتریس بهم بکار میرود. ضرب ماتریسها یکی از عملیاتهای اساسی در جبر خطی است که در MATLAB به سادگی قابل انجام است. تواناییهایMATLAB در مدیریت ماتریسهای sparse، چندبعدی و انجام محاسبات پیشرفته مانند PCA متلب را به ابزاری قدرتمند برای تحلیل دادهها و حل مسائل علمی و مهندسی تبدیل میکند. عملگر ضرب ماتریس “*” (ستاره ) است.
ضرب نقطه یکی از عملیاتهای کلیدی در جبر خطی و محاسبات عددی است و کاربردهای متعددی در تحلیل دادهها، پردازش تصویر و حل مسائل علمی دارد. در این ضرب، هر دو ماتریس بایستی ابعاد مشابه داشته باشند. در غیر این صورت، MATLAB خطای ابعاد نامناسب را نشان میدهد. عملگر ضرب نقطه “*.” (نقطه ستاره) است.
ضرب ماتریس در matlab یکی ازعملیات های مهم در انجام پروژه متلب میباشد که دانشجوها از این عملیات برای انجام پروژه های خود استفاده میکنند.
جدول انواع ضرب در متلب
عملگر | توضیحات | نام ضرب |
* | ضرب دو ماتریس | ضرب ماتریسی |
*. | ضرب تک تک عناصر دو ماتریس | ضرب نقطه ای |
مثال1: ضرب ماتریسهای ساده
clc; clear; close all
% تعریف دو ماتریس
A = [12, 22; 53, 14];
B = [15, 26; 72, 80];
% ضرب ماتریسها
C = A * B;
disp(C);
خروجی برنامه:
1764 2072
1803 2498
مثال 2. ضرب ماتریس و وکتور
clc; clear; close all
% تعریف ماتریس و وکتور
A = [1, 12; 3, 4];
v = [5; 36];
% ضرب ماتریس و وکتور
M = A * v;
disp(M);
خروجی برنامه:
437
159
مثال 3. ضرب ماتریسها با ابعاد مختلف
clc; clear; close all
% تعریف ماتریسها با ابعاد مختلف
A = [31, 22, 3; 14, 5, 46];
B = [70, 8; 19, 10; 11, 2];
% ضرب ماتریسها
C = A * B;
disp(C);
خروجی برنامه:
2621 474
1581 254
مثال 4. ضرب ماتریسهای Sparse
clc; clear; close all
% تعریف ماتریس sparse
A = sparse([1, 3], [2, 4], [2, 2], 5, 5);
B = sparse([2, 4], [1, 3], [3, 4], 5, 5);
% ضرب ماتریس sparse
C = A * B;
disp(C);
خروجی برنامه:
(1,1) 6
(3,3) 8
مثال5. ضرب ماتریسهای چندبعدی
clc; clear; close all
% تعریف ماتریسهای سه بعدی
A = rand(2, 3, 2);
B = rand(3, 2, 2);
% ضرب ماتریسهای سه بعدی
C = zeros(2, 2, 2);
for k = 1:4
C(:, :, k) = A(:, :, k) * B(:, :, k);
end
disp(C);
خروجی برنامه:
(:,:,1) = 1.2870 0.8710
1.2858 1.1663
(:,:,2) = 0.7830 0.2505
0.9626 0.6909
مثال 6. ضرب ماتریس و ماتریس Transpose
clc; clear; close all
% تعریف ماتریس
A = [11, 2; 30,54];
% ضرب ماتریس با ترانهاده آن
M = A * A’;
disp(M);
خروجی برنامه:
125 438
438 3816
مثال 7. حل سیستم معادلات خطیAX = B با استفاده از ضرب ماتریس
clc; clear; close all
% تعریف ماتریسها
A = [20, 1; 11, 3];
B = [18; 3];
% حل سیستم معادلات
X = A \ B;
disp(X);
خروجی برنامه:
1.0408
-2.8163
مثال8. تحلیل اجزای اصلی (PCA) که یکی از کاربردهای مهم ضرب ماتریس است.
clc; clear; close all
% تعریف دادهها
X = rand(10, 3);
% محاسبه ماتریس کوواریانس
C = cov(X);
% محاسبه مقادیر ویژه و بردارهای ویژه
[eigVec, eigVal] = eig(C);
% انتخاب بزرگترین مقادیر ویژه
[~, idx] = sort(diag(eigVal), ‘descend’);
eigVec = eigVec(:, idx);
disp(eigVec);
خروجی برنامه:
-0.4486 0.8301 0.3312
-0.5910 0.0024 -0.8067
0.6704 0.5576 -0.4895
مثال 9. دستور ضرب نقطه ماتریس در MATLAB
clc; clear; close all
% تعریف دو ماتریس
A = [1, 10; 13, 4];
B = [5, 6; 7, 5];
% ضرب نقطهای
C = A .* B;
disp(C);
خروجی برنامه:
5 60
91 20
مثال10. ضرب نقطهای با وکتور: ضرب نقطهای همچنین میتواند بین یک ماتریس و یک وکتور انجام شود. این عمل به شرطی که ابعاد به درستی همراستا باشند، قابل انجام است.
clc; clear; close all
% تعریف ماتریس و وکتور
A = [1, 21, 12; 4, 15, 6];
V = [10; 2];
% تغییر ابعاد وکتور برای ضرب نقطهای
v_expanded = repmat(V, 1, size(A, 2));
% ضرب نقطهای
M = A .* v_expanded;
disp(M);
خروجی برنامه:
10 210 120
8 30 12
مثال 11. ضرب نقطهای و ماتریسهای چندبعدی با ابعاد مشابه
clc; clear; close all
% تعریف ماتریسهای سهبعدی
A = rand(2, 3,2);
B = rand(2, 3,2);
% ضرب نقطهای
M = A .* B;
disp(M);
خروجی برنامه:
(:,:,1) =
0.0575 0.3991 0.0379
0.1205 0.0766 0.2014
(:,:,2) =
0.1105 0.6720 0.4965
0.0454 0.1786 0.0627
مثال 12. حل معادلات غیرخطی و تحلیل دادهها با ضرب نقطهای
clc; clear; close all
% تعریف دادهها
X = rand(3,3);
Y = rand(3,3);
% ضرب نقطهای برای تحلیل
Z = X .* Y;
disp(Z);
خروجی برنامه:
0.2795 0.4926 0.5177
0.6534 0.0005 0.7312
0.2003 0.4973 0.3092
مثال 13. مدلسازی و شبیهسازی با استفاده از ضرب
clc; clear; close all
t = 0:0.01:5;
x = sin(t);
y = cos(t);
M = x .* y;
plot(t, M);
grid on