رفتن به مطلب

isnan/isinf


hhamidy

ارسال های توصیه شده

سلام،

 

من میخوام در عناصر یک ماتریس هر جا nan یا inf وجود داره به جاش مقدار مثلا 10000 جایگزین بشه.

 

ایت دستورات این مقادیر رو در ماتریس پیدا می کنه منتها نتیجه به صورت تک بعدی خواهد بود:

k=find(isnan(X));

>> v=find(isinf(X));

 

راهی هست که این مشکل بوجود نیاد و دستوری موجود باشه که خروجی رو یک بعدی نکنه و خروجی هم به اندازه ی ماتریس ورودی باشه؟؟

 

و اینکه به چه صورت و با چه کدی میتونم این جایگزینی رو انجام بدم؟

 

ممنون.

  • Like 3
لینک به دیدگاه

سلام

 

این شکلی:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

اینم جوابش میشه:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

:a030:

  • Like 4
لینک به دیدگاه
سلام

 

این شکلی:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

اینم جوابش میشه:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

:a030:

خدا رو شکر،

ممنون آقا ایمان،

بالاخره درست شد.

دقتشم بالای 98% هست.

  • Like 3
لینک به دیدگاه

همین کاهش بعد که گفتم برای ماتریس eig خطا میگیره که نباید مقدارش nan یا inf باشه دیگه.

یکی از اساتید گفتن که باید از این روش استفاده کنم.

اما بعد از کاهش بعد دوباره به همون حالت اول تبدیل کرده و بعد ماتریس رو به پروژه اعمال کنم.

فعلا مرحله ی اولش حل شد.

  • Like 2
لینک به دیدگاه

حالا وقتی میخوام برش گردونم به حالت اول از این راه باید برم درسته؟

Ytest(10000) = nan;

 

ماتریسهای نتیجه برنامه یکیشون Ytest هست.

 

این طوری هرجا رو که 10000 شده به nan تبدیل میکنه؟

 

ببخشید فقط حالا از کجا بدونم nan بذاره مقدارشو یا inf?

  • Like 2
لینک به دیدگاه
حالا وقتی میخوام برش گردونم به حالت اول از این راه باید برم درسته؟

Ytest(10000) = nan;

 

ماتریسهای نتیجه برنامه یکیشون Ytest هست.

 

این طوری هرجا رو که 10000 شده به nan تبدیل میکنه؟

 

ببخشید فقط حالا از کجا بدونم nan بذاره مقدارشو یا inf?

 

نه درست ننوشتین.

 

می تونین توی یه متغیر ذخیره شون کنین، که دوباره بتونین استفاده کنین:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

جواب:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 4
لینک به دیدگاه
نه درست ننوشتین.

 

می تونین توی یه متغیر ذخیره شون کنین، که دوباره بتونین استفاده کنین:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

جواب:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

ممنون،درسته.

فقط ببینید ماتریس اولیم مثلا x هست ،خروجیش هم y.

خوب برای هر کدوم طبق فرمایش شما این رو مینویسم.

اما بعد از اعمال کاهش بعد به برنامه ماتریس نتیجه دیگه X,y نیست بلکه مثلا Ytest,؛Ytrain هست.

اون رو چطور میتونم؟

یعنی حالا باید از این ماتریس های نتیجه هر چی 10000 هست رو با nan یا infجایگذاری کنم.

  • Like 2
لینک به دیدگاه
ممنون،درسته.

فقط ببینید ماتریس اولیم مثلا x هست ،خروجیش هم y.

خوب برای هر کدوم طبق فرمایش شما این رو مینویسم.

اما بعد از اعمال کاهش بعد به برنامه ماتریس نتیجه دیگه X,y نیست بلکه مثلا Ytest,؛Ytrain هست.

اون رو چطور میتونم؟

یعنی حالا باید از این ماتریس های نتیجه هر چی 10000 هست رو با nan یا infجایگذاری کنم.

 

یه مثال می تونین بزنین، روی یه ماتریس کوچیکتر؟

  • Like 2
لینک به دیدگاه
یه مثال می تونین بزنین، روی یه ماتریس کوچیکتر؟

با مثال که خیلی سخته.

کاهش بعدو اینا رو با یه ماترس کوچیک نمیتونم بگم.

میشه یکی از پروژه هام ر. ایمیل کنم.

  • Like 2
لینک به دیدگاه

خیلی سادست.

همون ماتریس اولیمون طی یه سری مراحل و معادلاتی که انجام میشه بعدش کاهش پیدا میکنه.

منتها چون دارای nan/inf بود فرمولهای کاهش بعد رو قبول نمیکرد.

این طوری یه عدد دلخواه بزرگ به جای اونا تعریف میکنیم.

بعد از این مرحله دوباره باید خروجی کاهش بعد یافته رو برعکس قبل به جای 10000ها این دفعه nan /infبگذاریم.

متوجه شدید؟

  • Like 3
لینک به دیدگاه
خیلی سادست.

همون ماتریس اولیمون طی یه سری مراحل و معادلاتی که انجام میشه بعدش کاهش پیدا میکنه.

منتها چون دارای nan/inf بود فرمولهای کاهش بعد رو قبول نمیکرد.

این طوری یه عدد دلخواه بزرگ به جای اونا تعریف میکنیم.

بعد از این مرحله دوباره باید خروجی کاهش بعد یافته رو برعکس قبل به جای 10000ها این دفعه nan /infبگذاریم.

متوجه شدید؟

 

یعنی ابعاد ماتریس تغییر پیدا می کنه، اگه خب تغییر کنه که دیگه نمی تونین توی همون داریه ها nan /inf داشته باشین؟

  • Like 3
لینک به دیدگاه
یعنی ابعاد ماتریس تغییر پیدا می کنه، اگه خب تغییر کنه که دیگه نمی تونین توی همون داریه ها nan /inf داشته باشین؟

 

سلام،

بله تغییر پیدا میکنه.

 

خوب الان بعضی از عناصر حاویه 10000 هست دیگه درسته؟

حتی اگر تو همون مکانها نباشه.

خوب همونها رو تبدیل می کنیم به nan/inf.

  • Like 3
لینک به دیدگاه
سلام،

بله تغییر پیدا میکنه.

 

خوب الان بعضی از عناصر حاویه 10000 هست دیگه درسته؟

حتی اگر تو همون مکانها نباشه.

خوب همونها رو تبدیل می کنیم به nan/inf.

 

سلام

خب در این حالت باید یا تبدیل به nan کنین و یا inf. موقعیت درایه ها عوض شده، دیگه مشخص نیست کدوم nan بود و کدوم inf.

  • Like 3
لینک به دیدگاه
سلام

خب در این حالت باید یا تبدیل به nan کنین و یا inf. موقعیت درایه ها عوض شده، دیگه مشخص نیست کدوم nan بود و کدوم inf.

 

نمیتونیم این رو با دستور بنویسیم تا امتحانش کنم.

 

شما تو دستور قبلی نوشتی همون درایه هایی رو که nan/inf هست رو به جاش 10000 قرار بده و بعد همون ها رو برگردون به مقدار قبلشون.

الان می خوام بگم تو این ماتریس جدید حاصل هر چی مقدارش 10000 هست رو بذار inf و nan.

البته به نظر خودمم نمیشه.:5c6ipag2mnshmsf5ju3

 

الان که دارم نگاه می کنم ظاهرا فقط مقدارشون nan هست و inf ندارن.

, این یه پیغام کلی بوده که nan ,inf رو قبول نمی کنه.

این طوری میشه تبدیل کرد نه؟

که هر جا تو ماتریس جدید داری 10000 به جاش ققرار بده nan.

 

نه نمیشه.

چون دیگه تو Ytest 10000 وجود نداره.

مرسی.

  • Like 3
لینک به دیدگاه
نمیتونیم این رو با دستور بنویسیم تا امتحانش کنم.

 

شما تو دستور قبلی نوشتی همون درایه هایی رو که nan/inf هست رو به جاش 10000 قرار بده و بعد همون ها رو برگردون به مقدار قبلشون.

الان می خوام بگم تو این ماتریس جدید حاصل هر چی مقدارش 10000 هست رو بذار inf و nan.

البته به نظر خودمم نمیشه.:5c6ipag2mnshmsf5ju3

 

الان که دارم نگاه می کنم ظاهرا فقط مقدارشون nan هست و inf ندارن.

, این یه پیغام کلی بوده که nan ,inf رو قبول نمی کنه.

این طوری میشه تبدیل کرد نه؟

که هر جا تو ماتریس جدید داری 10000 به جاش ققرار بده nan.

 

میگین ابعادش تغییر می کنه، حداقل باید یه مثال بزنین مشخص بشه، چی می خواین، چجوری تغییر می کنن. ولی برای فقط nan، خیلی ساده میتونین به جای 10000ها nan بذارین.

  • Like 3
لینک به دیدگاه
×
×
  • اضافه کردن...