کلیدستان

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

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