انواع داده در زبان متلب
در زبان MATLAB نیازی به اعلان نوع داده و یا مشخص کردن ابعاد نیست. هر گاه متلب با یک متغیر جدید رو به رو می شود، متغیر را ایجاد کرده و حافظه مناسب را اختصاص می دهد. اگر متغیر از قبل وجود داشته باشد، محتوای قبلی را با محتوای جدید جایگزین می کند. و اگر لازم بود فضای جدید اختصاص می دهد. برای مثال:
1 | Total = 42 |
دستور بالا یک ماتریس ۱ در ۱ به نام Total ایجاد کرده و مقدار ۴۲ را در آن ذخیره می کند.
انواع داده موجود در زبان متلب
در متلب ۱۵ نوع داده اصلی وجود دارد. مقدار هر نوع داده به صورت ماتریس یا آرایه ذخیره می شود. حداقل اندازه این ماتریس یا آرایه می تواند ۰ در ۰ یا هر اندازه بزرگتری باشد. در جدول زیر می توانید انواع داده پر استفاده در زبان متلب را مشاهده کنید.
ردیف | توضیحات |
۱ | int8 عدد صحیح علامت دار ۸ بیتی |
۲ | uint8 عدد صحیح بدون علامت ۸ بیتی |
۳ | int16 عدد صحیح علامت دار ۱۶ بیتی |
۴ | uint16 عدد صحیح بدون علامت ۱۶ بیتی |
۵ | int32 عدد صحیح علامت دار ۳۲ بیتی |
۶ | uint32 عدد صحیح بدون علامت ۳۲ بیتی |
۷ | int64 عدد صحیح علامت دار ۶۴ بیتی |
۸ | uint64 عدد صحیح بدون علامت ۶۴ بیتی |
۹ | single داده های عددی با دقت واحد |
۱۰ | double داده های عددی با دقت دو برابر |
۱۱ | logical مقادیر منطقی (صفر و یک) نشان دهنده true و false |
۱۲ | char کاراکتر (رشته ها به صورت یک وکتوری از کاراکتر ذخیره می شوند) |
۱۳ | cell array آرایه ای از سلول های اندیس دار است که هر سلول قادر است یک آرایه با ابعاد و نوع متفاوت داده را ذخیره کنند |
۱۴ | structure آرایه ای از ساختار ها، هر ساختار در این آرایه، دارای فیلدهای نام گذاری شده است که میتواند آرایه با ابعاد و نوع مختلف داده را ذخیره کند |
۱۵ | function handle اشارهگر به یک تابع |
۱۶ | user classes ساخت اشیا از کلاس های تعریف شده توسط کاربر |
۱۷ | java classes ساخت اشیا از کلاس های جاوا |
مثال:
یک فایل اسکرپیتی با کد زیر درست کنید:
1 2 3 4 5 6 | str = 'Hello World!' n = 2345 d = double(n) un = uint32(789.50) rn = 5678.92347 c = int32(rn) |
خروجی کد فوق بعد از کامپایل و اجرا شدن:
1 2 3 4 5 6 | str = Hello World! n = 2345 d = 2345 un = 790 rn = 5678.9 c = 5679 |
تبدیل نوع داده
در متلب توابع مختلفی به منظور تبدیل یک نوع داده به نوع داده دیگر وجود دارد. در جدول زیر می توانید توابع مربوط به تبدیل نوع را مشاهده کنید.
تابع | توضیحات |
char | رشته را به آرایه ای کاراکتر تبدیل می کند |
int2str | عدد صحیح را به رشته بتدیل می کند |
mat2str | ماتریس را به رشته تبدیل می کند |
num2str | عدد را به رشته تبدیل می کند |
str2double | رشته را به عدد اعشاری با دقت double تبدیل می کند |
str2num | رشته را به عدد تبدیل می کند |
native2unicode | بایت های عددی را به کاراکترهای Unicode تبدیل می کند |
unicode2native | کاراکترهای Unicode را به بایت های عددی تبدیل می کند |
base2dec | اعداد مبنای N را به اعداد ده دهی (decimal) تبدیل می کند |
bin2dec | مقدار باینری را به عدد ده دهی (decimal) تبدیل می کند |
dec2base | اعداد ده دهی را به مبنای N تبدیل می کند |
dec2bin | اعداد ده دهی را به مبنای دو تبدیل می کند |
dec2hex | اعداد ده دهی را به هگزادسیمال تبدیل می کند |
hex2dec | اعداد هگزادسیمال را به ده دهی تبدیل می کند |
hex2num | اعداد هگزادسیمال را به اعداد اعشاری با دقت double تبدیل می کند |
num2hex | اعداد اعشاری با دقت single و double را به رشته هگزادسیمال IEEE تبدیل میکند |
cell2mat | آرایه سلولی را به آرایه عددی تبدیل می کند |
cell2struct | آرایه سلولی را به آرایه ای از ساختارها تبدیل می کند |
cellstr | یک رشته را به آرایه سلولی تبدیل می کند |
mat2cell | آرایه را به آرایه سلولی با اندازه سلول های متفاوت تبدیل می کند |
num2cell | آرایه را به آرایه سلولی با اندازه سلول های ثابت تبدیل می کند |
struct2cell | آرایه از ساختارها را به آرایه سلولی تبدیل می کند |
تعیین انواع داده ها
متلب توابع مختلفی را به منظور تعیین نوع داده یک متغیر ارائه می دهد. در جدول زیر می توانید این توابع را مشاهده می کند.
تابع | توضیحات |
is | برای تشخیص وضعیت استفاده می شود |
isa | تعیین می کند که آیا مقدار ورودی نوع داده خاصی دارد یا خیر |
iscell | تعیین می کند که مقدار ورودی یک آرایه سلولی است یا خیر |
iscellstr | تعیین می کند که آیا مقدار ورودی یک آرایه سلولی از رشته است یا خیر |
ischar | تعیین می کند که آیا مقدار ورودی یک آرایه از کاراکتر است یا خیر |
isfield | تعیین می کند که آیا مقدار ورودی یک آرایه از ساختار است یا خیر |
isfloat | تعیین می کند که آیا مقدار ورودی یک آرایه از نوع float است یا خیر |
ishghandle | اگر مقدار ورودی یک هندل مربوط به شیء Handle Graphics باشد، مقدار True برمیگرداند. |
isinteger | تعیین می کند که آیا مقدار ورودی یک آرایه عدد صحیح است یا خیر |
isjava | تعیین می کند که آیا مقدار ورودی یک شیء جاوا است یا خیر |
islogical | تعیین می کند که آیا مقدار ورودی یک آرایه منطقی است یا خیر |
isnumeric | تعیین می کند که آیا مقدار ورودی یک ارایه عددی است یا خیر |
isobject | تعیین می کند که آیا مقدار ورودی یک شیء MATLAB است یا خیر |
isreal | تعیین می کند که آیا مقدار ورودی یک آرایه از اعداد حقیقی است یا خیر |
isscalar | تعیین می کند که آیا مقدار ورودی یک مقدار اسکالر است یا خیر |
isstr | تعیین می کند که آیا مقدار ورودی یک آرایه کاراکتری است یا خیر |
isstruct | تعیین می کند که آیا مقدار ورودی یک آرایه از ساختار است یا خیر |
isvector | تعیین می کند که آیا مقدار ورودی یک vector است یا خیر |
class | برای تشخیص کلاس یک شیء استفاده می شود |
validateattributes | اعتبار آرایه را بررسی می کند |
whos | متغیرهای موجود در Workspace را به همراه اندازه و نوع داده نمایش می دهد |
مثال:
یک فایل اسکرپیتی با کد زیر ایجاد کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | x = 3 isinteger(x) isfloat(x) isvector(x) isscalar(x) isnumeric(x) x = 23.54 isinteger(x) isfloat(x) isvector(x) isscalar(x) isnumeric(x) x = [1 2 3] isinteger(x) isfloat(x) isvector(x) isscalar(x) x = 'Hello' isinteger(x) isfloat(x) isvector(x) isscalar(x) isnumeric(x) |
زمانی که کد فوق کامپایل و اجرا شود، خروجی زیر را تولید می کند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | x = 3 ans = 0 ans = 1 ans = 1 ans = 1 ans = 1 x = 23.540 ans = 0 ans = 1 ans = 1 ans = 1 ans = 1 x = 1 2 3 ans = 0 ans = 1 ans = 1 ans = 0 x = Hello ans = 0 ans = 0 ans = 1 ans = 0 ans = 0 |
هیچ نظری ثبت نشده است