اعداد مختلط را در MATLAB به راحتی می توان ایجاد کرد.
برای این کار کافیست از j و i استفاده کرد به مثال زیر توجه کنید:

>> a=1+2j
a =
1.0000 + 2.0000i
>> b=2-3i
b =
2.0000 – 3.0000i

می بینید که به به راحتی می توان عدد مختلط ساخت توجه کنید که۱+j2 درست نیست مگر اینکه از علامت * استفاده کنیم.

>> 1+i2
??? Undefined function or variable ‘i2′.

چند تابع برای کار با اعداد مختلط:

تابع abs:
این تابع برای بدست آوردن اندازه در اعداد مختلط بکار می رود:

>> a=1+2j
a =
1.0000 + 2.0000i
>> abs(a)
ans =
2.2361

فرض نمائید که m فایلی به نام test.m به دستورات زیر وجود دارد:

x=2;
k=f(3);
disp(k)

در این برنامه از تابع f استفاده شده است. فرض کنید که تابع f نیز به صورت زیر تعریف شده باشد:

function y=f(t)
y=t+x;

با اجرای برنامه test هنگامیکه متلب می خواهد تابع f را محاسبه نماید وارد این تابع می شود. در تابع f هنگامیکه متغیر y در حال محاسبه شدن می باشد، متلب به متغیر x خطا داده و برنامه متوقف خواهد شد. علت این خطا است که متغیرهای درون function اصطلاحا local یا محلی می باشند و حوزه فعالیت آنها تنها در خود function می باشد و متغیرهای درون function هیچ ارتباطی با برنامه های دیگر ندارند. با اینکه با اجرای برنامه test، متغیر x در workspace ایجاد شده است اما function، نمی تواند از x استفاده کند چرا که متغیرهای درون function محلی می باشند و function در حالت عادی نمی تواند به متغیرهای برنامه اصلی دسترسی داشته باشد.

global x
x=2;
k=f(3);
disp(k)

و برنامه f هم به صورت زیر اصلاح می شود:

function y=f(t)
global x
y=t+x;

اگر بخواهید x ای که در function استفاده می شود همان x برنامه اصلی در test.m باشد باید این متغیر را در هر دو برنامه، اصطلاحاً global یا عمومی نمائید. به این نکته توجه کنید که دستور global باید در هر دو برنامه نوشته شود. پس برنامه test.m به صورت زیر اصلاح می گردد:

در نتیجه به کمک دستور global ، حوزه فعالیت متغیرهای برنامه اصلی، تا داخل function ها و یا m فایل های دیگر گسترش می یابد.
با این کار متغیر x ای که در function قرار دارد، از آنجا که global شده است همان x=2 ای است که در برنامه اصلی آمده است.

مشابه متغییرهای global متغییرهای persistent می باشند، تفاوت این متغییرها در این است که صرفاً برای فراخوانی در یک تابع مورد استفاده قرار می گیرند و نمی توان از آنها همانند متغییرهای global در چند تابع متفاوت استفاده نمود.

امانت داری راز ماندگاری است!
منبع: ال مو یا