Ниже приводится обобщение моей проблемы
function E = FunctionIntegration(S)
I = @(f) log(det(4 * S(f)));
E = integral(I, -pi, pi)
S
— это дескриптор функции, который принимает скалярный ввод f
и возвращает матрицу. Когда я пытаюсь запустить эту функцию, я получаю ошибку Inner matrix dimensions must agree
.
Я понимаю, что integral
требует, чтобы функция I
принимала векторный ввод, и именно в этом заключается проблема, но в этом случае я не вижу способа приспособиться к этому, поскольку я должен затем передать этот вектор функции S
, которая возвращает матрицу. Есть ли способ обойти это?
Обратите внимание, что примером S
может быть:
S = @(f) [f 0; 0 1]
Очевидно, что в этом случае интеграл легко сделать аналитически, но функция S
может быть любым преобразованием скаляра в матрицу.