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


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

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

#1
سلام فایل زیپی که آپلود شده و در زیر میبینید درباره مبحثی ریاضی به نام کواترنیون ها است که نوعی از اعداد مختلط می باشند ، من برای کدنویسی برنامه ام نیاز به وارد کردن این m-file ها به متلب دارم ولی بعضی از این فایل ها نامی مشابه با نام دستورات متلب دارند و در فایل متنی که در زیر می آید و در فایل زیپ هم موجود است در این باره مقداری صحبت کرده ولی در کل نتوانستم تعیین مسیر کنم لطفا کمکم کنید . با تشکر


فایل‌های پیوست

دانلود qtfm_2_0.zip

نام فایل qtfm_2_0.zip
نوع فایل .zip
دفعات دانلود 262
اندازه 770.22 KB
ارسال کننده فایل 4i469x

دانلود Implementation_notes.txt

نام فایل Implementation_notes.txt
نوع فایل .txt
دفعات دانلود 295
اندازه 6.12 KB
ارسال کننده فایل 4i469x
دوست دارم زندگی رو . . . 
پاسخ

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

#2
سلام .
اینکه فایل های تکراری گذاشتن ، میتونه به خاطر هر یک از دو دلیل زیر باشه :

1- اون توابعی که قبلا در متلب وجود داشته اند را اندکی تغییر داده اند و به خاطر همین آنها را دوباره برای جایگذاری در این فایل زیپ گذاشته اند .
2- ممکنه خواستن که اگر شماره متلب شما خیلی قدیمی است ، فایل های جدید که در نسخه های قدیمی وجود ندارد را هم داشته باشید .

بنابراین باید شما هم فایل های مربوط به توابع با نام جدید را در فولدرها کپی کنید و هم آنهایی که با نام تکراری هستند را به صورت جایگزین قرار بدهید (فوقش فایل ها ، همان قبلی ها هستند) یا اینکه ابتدا فایل های با نام جدید را کپی کنید و اگر نرم افزار متلب پیام خطا داد ، آنگاه فایل های با نام تکراری را هم جایگزین کنید .
خوب اما چگونه متوجه بشویم که فایل مربوط به تابع مورد نظر ما در کجا قرار دارد ، برای این منظور مثلا فرض کنید می خواهیم آدرس فایل مربوط به تابع syms را پیدا کنیم ، می نویسیم :

کد:
which syms

نتیجه اجرای کد متلب بالا در کامپیوتر من به صورت زیر می باشد :

کد:
C:\Program Files\MATLAB\R2011a\toolbox\symbolic\symbolic\syms.m

حالا می تونم فایل مورد نظرم را با فایل قدیمی تر ، جایگزین کنم چون آدرس فایل را می دانم . coffee
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط 4i469x

مشکل در تعیین مسیر 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 ، شماره مجازی امارات


پرش به انجمن:


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