sum در متلب
دستورsum یکی از ابزارهای قدرتمند و پرکاربرد در متلب است که در زمینههای مختلف علمی و مهندسی استفاده میشود و با بهرهمندی از ترکیب این دستور با دیگر دستورات متلب، میتوان به تحلیلها و محاسبات پیچیدهتری دست یافت. دستورsum در متلب برای جمع عناصر یک ماتریس یا آرایه استفاده میشود. این دستور قادر است جمع عناصر در طول یکی از ابعاد ماتریس را انجام دهد و به همین دلیل کاربرد گستردهای در پردازش دادهها و تحلیل آماری دارد. به طور کلی، ساختار دستورsum مطابق جدول زیر است:
توضیح | دستور |
جمع عناصر بردار V | S = sum(V) |
A یک آرایه یا ماتریس دو بعدی است وS جمع عناصر A در طول ستونها را نشان میدهد. | S = sum(A) |
A یک ماتریس دو بعدی است وS جمع عناصر A برای جمع کردن عناصر در طول سطرها است. | S = sum(A, 2) |
مثال1: جمع عناصر یک بردار
clc; clear; close all
A = [11, 20, 3, 12, 15];
S = sum(A);
disp(S);
خروجی:
61
توضیح: برای یک بردار A، استفاده از دستورsum ساده است و جمع تمام عناصر آن بردار را ارائه میدهد.
مثال2: جمع عناصر یک ماتریس
clc; clear; close all
A = [41, 12, 44; 24, 15, 65; 70, 85, 19];
S = sum(A);
disp(S)
خروجی:
135 112 128
توضیح: برای ماتریس دو بعدی، دستورsum به طور پیشفرض جمع عناصر در طول ستونها را انجام میدهد.
مثال3- جمع در طول سطرها
clc; clear; close all
A = [1, 12, 23; 14, 25, 60; 77, 80, 19];
S = sum(A, 2);
disp(S);
خروجی:
36
99
176
توضیح: برای جمع کردن عناصر در طول سطرها، از دستور بالا استفاده شده است.
مثال4- جمع در طول ابعاد بالاتر
clc; clear; close all
A = cat(3, [11 2; 30 4], [51 26; 77 8]);
S = sum(A, 3);
disp(S);
خروجی:
62 28
107 12
توضیح: در آرایههای چند بعدی، دستورsum میتواند برای جمع عناصر در طول ابعاد بالاتر نیز استفاده شود. این مثال برای جمع در بعد سوم ماتریس است.
مثال5- جمع کردن عناصر مثبت
clc; clear; close all
A = [-1, 2, -3, 4, -5];
S = sum(A(A > 0));
disp(S);
خروجی:
6
توضیح: با ترکیب دستورsum با شرطها میتوان جمع عناصر خاصی از یک آرایه را محاسبه کرد. به عنوان مثال، جمع کردن فقط عناصر مثبت در این مثال مدنظر است.
مثال6- جمع عناصر غیر صفر
clc; clear; close all
A = [0, 1, 0, 2; 3, 0, 4, 0];
S = sum(A(A ~= 0));
disp(S);
خروجی:
10
توضیح: با ترکیب دستورsum با شرطها میتوان جمع عناصر غیر خاصی از یک ماتریس را محاسبه کرد. به عنوان مثال، جمع کردن عناصر غیر صفر این ماتریس مدنظر بوده است.
مثال7 – جمع تجمعی (Cumulative Sum)
clc; clear; close all
A = [51, 12, 33, 4];
S = cumsum(A);
disp(S);
خروجی:
51 63 96 100
توضیح: با استفاده از دستورcumsum میتوان جمع تجمعی عناصر یک آرایه یا ماتریس را به دست آورد. در مثال فوق عدد سوم، مجموع مقادیر از عنصر اول تا سوم است.
مثال8- جمع وزنی
clc; clear; close all
A = [41, 12, 11, 54];
weights = [0.71, 0.22, 0.13, 0.44];
weighted_sum = sum(A .* weights);
disp(weighted_sum);
خروجی:
56.9400
توضیح: برای محاسبه جمع وزنی عناصر یک آرایه، میتوان از عملیات ضرب عنصری همانند مثال بالا استفاده کرد. در این مثال عناصر دو بردار A و weights به همدیگر ضرب شده و با هم جمع شده اند.
مثال9- جمع در ماتریسهای پراکنده (sparse)
clc; clear; close all
A = sparse([1, 0, 0; 0, 2, 0; 0, 0, 3]);
S = sum(A, 2);
disp(S);
خروجی:
(1,1) 1
(2,1) 2
(3,1) 3
توضیح: ماتریسهای پراکنده در متلب حافظه را بهینه میکنند. جمع در این نوع ماتریسها نیز باsum امکانپذیر است.
مثال10- پردازش سیگنال
clc; clear; close all
signal = [15, 22, 33, 24];
energy = sum(signal.^2);
disp(energy);
خروجی:
2374
توضیح: در پردازش سیگنال، از دستورsum برای محاسبه انرژی یک سیگنال استفاده میشود.
مثال 11- کاربرد sum در تحلیل آماری
clc; clear; close all
data = [12, 3, 44, 4, 15, 5, 7, 99];
mean_value = mean(data);
variance = sum((data – mean_value).^2) / (length(data) – 1);
disp(variance);
خروجی:
1.1057e+03
توضیح: در تحلیل آماری، دستورsum به همراه mean وvar برای محاسبه مجموع مربعات واریانسها استفاده میشود.
مثال12- استفاده از دستورات برداری در بهینهسازی
clc; clear; close all
A = rand(1, 1000);
S = sum(A);
disp(S);
خروجی:
توضیح: برای بهینهسازی محاسبات، استفاده از عملیات برداری به جای حلقهها پیشنهاد میشود. این رویکرد در متلب بسیار سریعتر است.
مثال13- دستورsum و پردازشهای موازی
clc; clear; close all
parpool;
A = rand(1, 1000);
S = sum(A);
disp(S);
delete(gcp(‘nocreate’));
خروجی:
Starting parallel pool (parpool) using the ‘local’ profile connected to 2 workers.
510.0194
Parallel pool using the ‘local’ profile is shutting down.
توضیح: برای دادههای بسیار بزرگ، استفاده از ابزارهای پردازش موازی متلب، مانند Parallel Computing Toolbox، میتواند کارایی را افزایش دهد.


