Я не думаю, что мои комментарии по вопросу или принятому решению встречаются так, как я намеревался, поэтому я дам правильный ответ, чтобы лучше уточнить то, что вы видите.
В MATLAB есть несколько вещей, называемых "месяцем". В Financial Toolbox есть функция с именем month (https://www.mathworks.com/help/finance/month.html).). Также есть метод класса datetime
с именем "month" (https://www.mathworks.com/help/matlab/ref/month.html).. Это две отдельные функции, и они действуют как иначе. Обычная функция «месяц» (из Financial Toolbox) будет принимать любой номер даты или строку. Однако в MATLAB, если вы вызываете «месяц» и передаете ему экземпляр даты-времени (как в ответе принятого решения, вы можно использовать datetime('now')
), вы не будете вызывать функцию Financial Toolbox «месяц», а будете использовать метод «месяц» класса datetime, потому что именно так работают правила диспетчеризации MATLAB.
matlab.codetools.requiredFilesAndProducts
не знает и не может знать , что вы вызываете «месяц» с вводом даты и времени, поэтому он не может предполагать, что вы вызываете метод datetime с именем «месяц», и вместо этого выдает отчеты вам требования к функции Financial Toolbox.
Если вы знаете, что работаете с датами и временем, вы можете быть более точным в своем запросе к requiredFilesAndProducts:
>> [~,packages] = matlab.codetools.requiredFilesAndProducts(which('month(datetime(''now''))'))
packages =
Name: 'MATLAB'
Version: '8.6'
ProductNumber: 1
Certain: 1
Используя which('month(datetime(''now''))')
, вы более точно указываете функции which
, как именно будет выглядеть вызов вашей функции (т. Е. Каков будет ее тип ввода), что позволяет ей правильно определить, какой перегружен Будет вызван «month», а затем requiredFilesAndProducts может правильно показать вам, что если вы вводите дату и время, вам нужен только MATLAB, а не Financial Toolbox.
Если вам действительно нужно вызвать «месяц» в не-дата-время, вы можете эффективно получить то же поведение, написав свою собственную функцию, которая просто помещает серийную дату и формат в дату-время, а затем вызывает «месяц» в дату-время объект (см. синтаксис 'ConvertFrom' в https://www.mathworks.com/help/matlab/ref/datetime.html).. Это не будет иметь никаких требований к Financial Toolbox, потому что он будет использовать только метод datetime (который включен в базовый MATLAB).