Как заставить MATLAB идентифицировать зависимость при упаковке инструментов

У меня есть папка, в которой я определил несколько пользовательских сценариев. Эти сценарии используют функции и классы, определенные в таких наборах инструментов, как Communications Toolbox и DSP System Toolbox.

Когда я пытаюсь упаковать папку в набор инструментов, анализатор зависимостей не идентифицирует ни один из наборов инструментов, на которые полагаются сценарии. Как это исправить?

Например, если у меня есть только следующие строки внутри сценария Matlab, а также в файле функций Matlab, оба внутри папки, не должен ли MATLAB идентифицировать Parallel Computing Toolbox как необходимое дополнение при упаковке папки?

gcp('nocreate')
delete(gcp('nocreate'));
parpool("local", 1);

Я попытался посмотреть, может ли MATLAB указать зависимости, используя RequiredFilesAndProducts в моих сценариях, но даже это не смогло перечислить необходимые наборы инструментов.

Я также просмотрел следующие страницы MATLAB:

  1. https://www.mathworks.com/help/matlab/matlab_prog/identify-dependencies.html: отчет о зависимостях для кода, который я включил, правильно определяет, что используется набор инструментов Parallel Computing.
  2. https://www.mathworks.com/help/matlab/ref/matlab.codetools.requiredfilesandproducts.html Здесь не указаны наборы инструментов в качестве зависимостей для кода.
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, что это может произойти, если анализируемый код не находится на пути MATLAB. Я помещаю указанные вами строки в скрипт, а когда нет пути, requiredFilesAndProducts перечисляет только MATLAB; когда скрипт находится на пути, я вижу это:

[a,b] = matlab.codetools.requiredFilesAndProducts('pkg/usesPctScript.m');
disp(struct2table(b))
                 Name                 Version     ProductNumber    Certain
    ______________________________    ________    _____________    _______

    {'MATLAB'                    }    {'9.12'}           1          true  
    {'Parallel Computing Toolbox'}    {'7.6' }          80          false 
    {'MATLAB Parallel Server'    }    {'7.6' }          94          false 
    {'Polyspace Bug Finder'      }    {'3.6' }         164          false 

Согласно документации, в разделе «Переносимость Toolbox» приложения «Package Toolbox» говорится:

Продукты — список продуктов MathWorks®, необходимых для вашего набора инструментов. Создавать этот список вручную.

Оказывается, хотя код действительно находился на пути MATLAB, я не вызывал эту функцию struct2table. Звонок дал мне тот же результат, что и вам. Вот и раскрыта одна загадка, спасибо!

curiousGeorge123 24.11.2022 10:03

Однако, когда я упаковываю папку как набор инструментов, я все еще не вижу эти наборы инструментов, идентифицированные как зависимости ---- что действительно является сутью проблемы, которую я пытаюсь решить.

curiousGeorge123 24.11.2022 10:03

Я предполагаю, что это «определенное» поле, являющееся ложным для всех других наборов инструментов, как-то связано с этим?

curiousGeorge123 24.11.2022 10:05

Я не эксперт в этом, но, читая документ, я думаю, что, к сожалению, вам нужно вручную заполнить часть «Продукты» «Переносимости Toolbox». Я думаю, что часть «Требования» касается вещей, отличных от продуктов MathWorks.

Edric 24.11.2022 10:10

Я понимаю. Было бы очень полезно, если бы вы также могли связать документ, на который вы ссылались. Мой гугл-фу ничего полезного не выдал. Если бы вы могли предложить способ указать зависимые наборы инструментов в файле .prj, чтобы они устанавливались автоматически, было бы здорово!

curiousGeorge123 24.11.2022 10:11

Эта страница mathworks.com/help/matlab/matlab_prog/… . (Я никогда раньше не использовал эту функцию, поэтому мне пришлось искать документ, чтобы даже знать, с чего начать!). Нужно очень внимательно прочитать описание «Требования» и сравнить с «Переносимостью набора инструментов», в котором говорится «Продукты — список продуктов MathWorks®, требуемых вашим набором инструментов. Создайте этот список вручную».

Edric 24.11.2022 10:35

Ладно, теперь я чувствую себя очень глупо. Я, должно быть, сто раз смотрел на эту страницу. Никогда не замечал раздел переносимости Toolbox или тот факт, что список продуктов MATLAB необходимо заполнять вручную. Это спасение - огромное спасибо!

curiousGeorge123 24.11.2022 10:58

Другие вопросы по теме