У меня есть матрица (тип: double) размером 106 x 103. Матрица представляет европейские сеточные данные о температуре для одного временного шага (дня).
Для каждого дня я хочу вычислить градусы дней(тепловое время) для вида на основе температуры, записанной для каждой «ячейки» (элемента i, j) в матрице с использованием формулы, которую я кодировал в Matlab на основе синусоидального подхода.
Итак,в конечном итоге я хочу применить к моей матрице вычисление, которое обеспечит индивидуальный вывод для каждой ячейки сетки (элемент i, j) в зависимости от записанных там температурных данных.Я мог бы сделать это с помощью цикла, но мне нужно накапливать эти градусные дни за несколько лет, поэтому я бы предпочел найти способ применения вычисления к каждому элементу в ежедневной матрице одновременно (и затем циклически повторять дни (матрицы)).Из того, что я прочитал, вы можете использовать cellfun, если ваша матрица является массивом ячеек (у меня нет).Затем я также посмотрел на опцию bsxfun, но кажется, что функции - это просто стандартные функции, например, среднее, максимальное и т. Д. Итак, сейчас я рассматриваю использование arrayfun в сочетании с функцией, которую я создаю из своего алгоритма для вычисленияградусные дни.Я пытался написать тестовую функцию, но Matlab продолжает выдавать ту же ошибку: я набираю:
function output=degreedays(x)
и Matlab отбрасывает назад:
Error: Function definitions are not permitted in this context.
Может кто-нибудь сказать мне, что я делаю не так?Почему он не принимает объявление имени функции?