دستور length در نرمافزار متلب به طور کلی برای محاسبه طول آرایهها استفاده میشود. به طور معمول این دستور برای آرایههایی با ابعاد برداری (یک بعدی) استفاده میشود و در صورتی که برای آرایههای دوبعدی یا بیشتر استفاده شود، طول بیشترین ابعاد به عنوان خروجی بازگردانده میشود.
گرامر (syntax) استفاده از دستور length در متلب
در هر زبان برنامهنویسی هر دستوری مطابق سینتکس یا گرامر خاصی استفاده میشود که نحوه ورودیها و خروجیهای آن دستور را مشخص میکند. سینتکس استفاده از دستور length در متلب بسیار ساده بوده و فقط به یک صورت قابل استفاده است:
مثالهای مختلف کار با دستور length برای آرایههای عددی و سلولی (cell array)
در ادامه با ارائه چند مثال نحوه استفاده از این دستور را برای دادههای عددی و سلولی بیان میکنیم.
مثال اول : بدست آوردن طول یک بردار عددی در متلب
A = [5 4 3 7 -2 1 -1 -3 12] ;
len = length(A)
% Result:
len = 9
مثال دوم : بدست آوردن طول یک ماتریس عددی در متلب
B = [12 10 13 17 ; 5 6 4 17 ; -9 -12 5 -6] ;
LenMax = length(B)
% Result:
LenMax = 4
نکته مهم : دقت نمایید برای آرایههای ماتریسی دوبعدی یا بیشتر دستور length طول بیشترین بعد را برمیگرداند.
مثال سوم : محاسبه طول آرایه سلولی
C = {'Mahdi', true(2,2), [1 2 3 4], 'Arman','Zahra','Fatemeh'};
lenC = length(C)
lenC3 = length(C{3})
% Results:
lenC = 6
lenC3 = 4
نکته مهم : آرایه سلولی میتواند هر نوع دادهای را در خود قرار دهد و اگر یک بردار به عنوان یک درایه در آن قرار دهیم، میتوانیم با دسترسی به آن درایه(C{3}) ابعاد آن بردار را نیز مستقیم محاسبه نماییم.
مثالهای مختلف کار با دستور length برای آرایههای متنی(string) و ساختاری(structure)
در ادامه با ارائه چند مثال نحوه استفاده از این دستور را دادههای متنی و ساختاری بیان میکنیم.
مثال چهارم : بدست آوردن ابعاد آرایههای متنی (string and character)
Str1 = 'Hello Mohammad Reza' ;
lenS1 = length(Str1)
Str2 = "Hello Mohammad Reza" ;
lenS2 = length(Str2)
% Results:
lenS1 = 19
lenS2 = 1
نکته بسیار مهم : دقت نمایید آرایه متنی کاراکتر (‘ ‘) هر کاراکتر آن یک واحد شمارش شده در حالی که آرایه متنی استرینک (" ") به طور کلی یک عبارت آن یک کاراکتر استفاده میشود.
در مثال بعدی طول یک آرایه متنی با استفاده از نوع داده استرینگ محاسبه میشود:
STR = ["Matlab","Python","C++",'Java',"R","Javascript", 1400] ;
lenS = length(STR)
% Result
lenS = 7
نکته مهم : دقت نمایید اگر نوع داده دیگری در آرایه استرینگ باشد، همگی به استرینگ تبدیل میشوند.
مثال پنجم : محاسبه ابعاد یک آرایه ساختاری
مثال اول با استفاده رویکرد با نام آرایه ساختاری
std.Ali.age = 18 ;
std.Ali.grade = 19 ;
std.Ali.Id = 94851 ;
std.Reza.age = 19 ;
std.Reza.grade = 18.25 ;
std.Reza.Id = 94841 ;
lenStd = length(std)
lenStdA = length(std.Ali)
% Results:
lenStd = 1
lenStdA = 1
مثال دوم با استفاده از رویکرد بدون نام آرایه ساختاری
stdu(1).name = 'Ali' ;
stdu(1).age = 18 ;
stdu(1).grade = 19 ;
stdu(1).Id = 94851 ;
stdu(1).name = 'Reza' ;
stdu(2).age = 19 ;
stdu(2).grade = 18.25 ;
stdu(2).Id = 94841 ;
lenStdU = length(stdu)
lenStdUa = length(stdu(1))
% Result
lenStdU = 2
lenStdUa = 1
مثال ششم : محاسبه ابعاد یک آرایه جدولی
T = table([1; 2; 3], {'A'; 'B'; 'C'}, ...
[true; false; true], 'VariableNames', {'Var1', 'Var2', 'Var3'});
lenT = length(T)
% Result:
Error using tabular/length Undefined function 'LENGTH' for input arguments of type 'table'. Use the height, width, or size functions instead.
نکته مهم : دقت نمایید دستور length برای آرایه جدولی قابل استفاده نیست و برای محاسبه ابعاد یک آرایه جدولی میتوانیم از دستور size، width و height استفاده نماییم.
تفاوت دستور size و length
در مقاله دستور size در متلب به این دستور و نحوه فراخوانی آن به طور کامل اشاره کردیم. دستور size در متلب برای محاسبه اندازه یک ماتریس با ابعاد مختلف استفاده میشود و در حالت معمول میتوانیم اندازه سطر، ستون، طبقات و ... یک ماتریس بدست آوریم. مثال زیر را در نظر بگیرید:
AA = [1, 2, 3; 4, 5, 6];
dimensions = size(AA);
% answer:
dimensions = 2 3
در حالی که دستور length در متلب به طور کلی برای محاسبه طول یک آرایه برداری قابل استفاده است:
BB = [1 2 3 4 5 6] ;
lenBB = length(BB)
% Result:
lenBB = 6