MATLAB: вектор локальных максимумов непрерывной функции на определенном интервале [дубликат]

Вы также можете использовать метод compareTo() для сравнения двух строк. Если результат compareTo равен 0, то две строки равны, в противном случае сравниваемые строки не равны.

== сравнивает ссылки и не сравнивает фактические строки. Если вы создали каждую строку, используя new String(somestring).intern(), вы можете использовать оператор == для сравнения двух строк, в противном случае могут использоваться только методы equals () или compareTo.

0
задан Programmer 30 September 2017 в 23:46
поделиться

1 ответ

Вы можете использовать уже существующую функцию x = fminbnd(fun, x1, x2), которая дает вам мин для дескриптора функции fun в диапазоне от x1 и x2. Чтобы получить максимум, вы можете просто использовать отрицательный результат своего дескриптора функции.

Ваша функция может выглядеть так:

function [min, max] = fminmax(f, lowerbound, upperbound)
    min = fminbnd(f, lowerbound, upperbound);
    max = fminbnd(@(x) -f(x), lowerbound, upperbound);
end
1
ответ дан Atzeloth 17 August 2018 в 08:40
поделиться
  • 1
    Когда я пытаюсь это сделать, Matlab выдает сообщение об ошибке. В нем говорится «Неопределенный оператор * *» для входных аргументов типа «function_handle» & quot; – Programmer 1 October 2017 в 03:11
  • 2
    @Marcus мой плохой. Функциональный дескриптор не является числовым значением и поэтому не может быть умножен на -1 . Я отредактировал свой ответ. Это должно сделать трюк. – Atzeloth 1 October 2017 в 19:03
Другие вопросы по тегам:

Похожие вопросы: