فرض نمائيد كه 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 اي است كه در برنامه اصلي آمده است.
فرض نمائيد كه 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 اي است كه در برنامه اصلي آمده است.