انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در تعیین مسیر m-file

مشکل در تعیین مسیر m-file

#3
هورا ، بالاخره موفق شدم ولی قضیه این نبود که شما گفتید ، اگر فایل زیپ رو باز کنید متوجه میشید ابتدای دو فولدر علامت @ گذاشته شده ، در این پوشه ها دستوراتی مشابه با دستورات متلب هست ولی محتوای آنها متفاوت از دستورات متلب است ، مثلا فایل abs.m . این پوشه ها با علامت @ ، به نام class خوانده میشوند ، حالا شما به راحتی میتونید این فولدرها رو به متلب اضافه کنید چطور؟ خیلی راحت ، وقتی فایل زیپ رو از حالت زیپ خارج کنید و Extract کنید جند پوشه در اون است ، هدف اضافه کردن فولدرهای class که با @ شروع میشوند است ، پس پوشه رو از فایل و پوشه های دیگه خالی میکنید تا فقط دو پوشه با علامت @ در اولشون در پوشه qtfm قرار یگیرد ، حالا به راحتی با فشردن دکمه add path در متلب این پوشه ها را انتخاب میکنید و ذخیره میکنید ، موضوع اینه که علامت @ نشاندهنده کلاس است مثلا دستور abs با فایل abs.m در پوشه quaternion@ به معنی این است که دستور abs از کلاس کواترنیون ، و دستور abs.m که در متلب است باز هم در پوشه ای با کلاس دیگری می باشد به این ترتیب با توجه به آرگومان متلب تعیین میکنه که از abs کلاس کواترنیون استفاده بشه یا از abs کلاس دیگه ای .

For example, consider a path with the following folders, containing the files indicated:
fldr1/foo.m % defines class foo
fldr2/foo.m % defines function foo
fldr3/@foo/foo.m % defines class foo
fldr4/@foo/bar.m % defines method bar
fldr5/foo.m % defines class foo
The MATLAB language applies the logic in the following list to determine which version of foo to call:

Class fldr1/foo.m takes precedence over the class fldr3/@foo because it is before fldr3/@foo on the path.


Class fldr3/@foo takes precedence over function fldr2/foo.m because it is a class in an @-folder and fldr2/foo.m is not a class (@-folder classes take precedence over functions).


Function fldr2/foo.m takes precedence over class fldr5/foo.m because it comes before class fldr5/foo.m on the path and because class fldr5/foo.m is not in an @-folder. Classes not defined in @-folder abide by path order with respect to functions.


Class fldr3/@foo takes precedence over class fldr4/@foo; therefore, the method bar is not recognized as part of the foo class (which is defined only by fldr3/@foo).


If fldr3/@foo/foo.m does not contain a classdef keyword (i.e., it is a MATLAB class prior to Version 7.6), then fldr4/@foo/bar.m becomes a method of the foo class defined in fldr3/@foo.
دوست دارم زندگی رو . . . 
پاسخ
 سپاس شده توسط admin ، شماره مجازی امارات


پیام‌های این موضوع
مشکل در تعیین مسیر m-file - توسط 4i469x - ۱۳۹۲/۰۱/۱۹, ۰۲:۳۹ ق.ظ
RE: مشکل در تعیین مسیر m-file - توسط admin - ۱۳۹۲/۰۱/۱۹, ۰۵:۲۸ ب.ظ
RE: مشکل در تعیین مسیر m-file - توسط 4i469x - ۱۳۹۲/۰۱/۲۰, ۰۲:۱۸ ق.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان