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


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

پیدا کردن حداکثری سراسری و محلی

#1
سلام،
نموداری دو بعدی را در نظر بگیرید (x,y) ،که مانند شکل دارای پیک هایی نیز است و شما می خواهید محل این پیک ها(x)   و مقدار این پیک ها(y) را بدست آورید،آیا تابع آماده ای در متلب هست که این کار را انجام بده؟
کاری که خودم می خوام انجام بدم اینه که بازه x که این پیک ها رخ می دهند مشخص است،باید اندیس این بازه از x ها را به y ها بدهیم تا مقادری بدست آید ،سپس این مقادیر را در یک ماتریس دیگر ذخیره کرده و ماکزیمم را حساب می کنیم ،اما مشکلی که دارم اینه که با چه دستوری اندیس (شماره) x ها را باید دربیاورم(باید بگم که مقادیر محور اققی و عمودی در یک ماتریس ذخیره شدند)،برای مثال اندیس x که به ازای آن x شده 30.
با تشکر

   
 
پاسخ

پیدا کردن حداکثری سراسری و محلی

#2
سلام.
اگر بخواهیم تنها بلندترین نقطه در شکل پیدا شود، می شود ماکزیمم سراسری که با تابع max ، خیلی راحت پیدا می شود، اما این طور که توضیح دادید، قصد دارید همه نقطه های بلند را به صورت محلی پیدا کنید (ماکزیمم محلی).
بله می توان مثلا مقادیر شکل قبل را به دو بردار جداگانه تبدیل کرد و بعد با تابع max در متلب، مقدار ماکزیمم x و سپس از آن، مقدار y متناظر را یافت (اما روش زمانبری است و توصیه نمی شود، در ادامه یک روش ساده تر را شرح می دهم).
اگر بخواهید مقادیر x و y یک نقطه مشخص در یک شکل را بیابید، در خود پنجره شکل، گزینه ای با نام Data Cursor است که باید آن را انتخاب کرده و سپس در نزدیکی نقطه مورد نظرتان در شکل، کلیک کنید. مقدار x و y آن نقطه نمایش داده می شود. دقت شود که برای مقادیر اعشاری با تعداد رقم اعشار بالا، این عدد به صورت گرد شده نمایش داده می شود، در اینگونه موارد برای داشتن مقدار دقیق، بر روی اطلاعات نمایش داده شده، کلیک سمت راست نموده و گزینه Export Cursor Data to Workspace را انتخاب کنید و از طریق آن، مقدار را در یک متغیر، ذخیره نمایید.
راه حل ریاضی یافتن اینگونه ماکزیمم ها، می تواند گرفتن مشتق و یافتن نقاطی باشد که دارای مشتق برابر صفر هستند، اما فقط برای برنامه هایی ارزش کدنویسی داره که پیچیدگی زیادی دارن (البته ممکنه روش های دیگری هم باشه).
من خودم اگر فقط بخواهم دو عدد مربوط به یک نقطه ماکزیمم را داشته باشم، با همان Data Cursor در نزدیکی آن کلیک کرده و سپس با کلیدهای چپ و راست از کیبورد، نقطه را جابجا می کنم و با دیدن مقادیر، تشخیص می دهم که کدام مقدار مربوط به ماکزیمم است.

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


پرش به انجمن:


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