Как мне запустить файлы MATLAB (.m) в VSCode?

#matlab #visual-studio-code

#matlab #visual-studio-code

Вопрос:

Я не могу понять, как запустить код MATLAB (.m) в VSCode.

Я установил расширение MATLAB для VSCode и добавил путь к mlint файлу для MATLAB, как указано в расширении.

 "matlab.mlintpath"
  

VSCode идентифицирует файл как файл MATLAB. Однако код не будет выполняться.

Как я могу запустить код MATLAB из VSCode?

Комментарии:

1. Вы имеете в виду «выполнить», как при выполнении кода? Поскольку MATLAB является собственностью, существует только два способа запуска кода MATLAB: путем запуска кода из среды IDE MATLAB (с действующей лицензией, конечно) или путем компиляции его в исполняемый файл с помощью компилятора MATLAB.

2. Да, я имею в виду выполнить код. Итак, нет ли способа напрямую выполнить код из командной строки vscode?

3. Вы могли бы, при условии, что у вас есть рабочая установка MATLAB на вашем компьютере и вызвать ее из командной строки, или использовать один из обходных путей, упомянутых в моем ответе. Не имея доступа к действующей лицензии и рабочей установке MATLAB, вы не сможете запустить код, который разработан.

4. В Windows вы не можете запустить сеанс Matlab внутри терминала, всегда будет появляться интерактивная консоль Matlab (например matlab -nodesktop -nosplash <fileToRun.m> ). Я написал руководство, которое позволяет выполнять разделы / строки / полные файлы в запущенной среде разработки Matlab IDE из vscode, ссылка . Это немного халтурно, но позволяет мне наслаждаться, например, многострочным редактированием vscode, а затем быстро запускать разделы кода, нажимая сочетание клавиш вместо переключения на matlab, и запускать весь файл.

Ответ №1:

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


Поскольку MATLAB является собственностью, существует только два способа запуска кода MATLAB: путем запуска кода из среды IDE MATLAB (с действующей лицензией, конечно) или путем компиляции его в исполняемый файл с помощью компилятора MATLAB.
Возможно, вы сможете заставить другие IDE иметь подсветку синтаксиса и подсказки ввода, например, собственную IDE MATLAB, импортируя ее mlint функциональность, как вы это сделали, но это не приведет к выполнению кода.

Таким образом, нет, вы не можете выполнить код MATLAB непосредственно в VSCode, вы можете только тайно вызвать механизм MATLAB изнутри VSCode.


Возможным обходным путем было бы экспортировать ваш код MATLAB в C / C с помощью MATLAB Coder . Затем вы можете запустить код C / C из VSCode.

Комментарии:

1. Вы также можете вызвать код MATLAB из-за пределов IDE (я полагаю, это возможно с некоторыми расширениями VSCode), но главное, что вам нужно, чтобы для этого был установлен MATLAB, и он будет вызывать механизм MATLAB неявно.

2. Это расширение работает для меня. Следует отметить, что исполняемый файл Matlab должен указывать путь пользователя. Я думаю, что одно только первое предложение было бы отличным ответом на вопрос, и я озадачен, почему существует длинный дискурс о природе лицензии Matlab и о том, как генерировать C. На самом деле Matlab можно запускать без IDE, matlab -nosplash -nodesktop которую я обычно использую из оболочки, и именно это использует это расширение.

3. @Liam необходим длинный дискурс, потому что наличие расширения без действительной лицензии MATLAB установка не будет работать. Кодировщик и mlint части менее релевантны, предоставлены и были добавлены для уточнения других параметров (особенно учитывая, что OP упоминает установку mlint в вопросе).

Ответ №2:

TL; DR:

Я написал расширение терминала Matlab для VS Code в Linux. Он может запускать matlab файлы и создавать a matlab -Terminal. Вы можете найти репозиторий здесь .

Вопрос для VS Code

Недавно я хотел использовать matlab терминал в vscode. Для этого даже есть расширение. Но при использовании расширения я столкнулся с некоторыми недостатками. Также репозиторий, похоже, больше не активен, а владелец не реагирует на проблемы и тому подобное.

Поэтому я решил написать свое первое расширение MatTer for VS Code и опубликовал его на VS marketplace. Он находится на ранней стадии разработки, но уже может создавать a matlab -Terminal и запускать matlab файлы.

Репозиторий размещен на Github, смотрите здесь: https://github.com/mauzigoe/matter-for-vscode

Чтобы установить его vscode , просто выполните поиск matter-for-vscode в Extension .

Критика и отзывы приветствуются, особенно. поскольку я новичок в этом.

Ответ №3:

«@Liam необходим длинный дискурс, потому что расширение без действительной лицензии MATLAB установка не будет работать.T»

…потому что в какой-то момент вам понадобится хотя бы ОДНА рабочая установка matlab только для разработки m-файла 🙂

Я подозреваю, что вы правы, и все сводится к выбору между внедрением «чужого» кода в m-файл или вызовом механизма matlab из внешней среды разработки. У них есть бесплатный RTE, но вам все равно нужна какая-то форма Matlab IDE для записи, а также набор инструментов компилятора Matlab для создания проекта для RTE.

Обходной путь заключается в использовании инструментов ОС для полного удаления Matlab и других проприетарных инструментов из цикла. Вот почему, если вам придется заплатить 5 тысяч долларов за проприетарный инструмент, это должно быть оправдано другими способами, кроме «он может выполнить работу».

Расширения VS Code имеют ту же проблему, что и любое другое расширение: если вы посмотрите на репозиторий и увидите, что требуется для установки и запуска расширения? Вероятно, вы никогда больше не установите расширение. Это примерно так же разумно, как беспечно загружать и устанавливать любой код из Интернета: он ничем не лучше исходного кода. Я бы подождал, пока вы не выясните, как вызвать getOpen () и т. Д. В VS Code, Не загружая какое-либо случайное расширение из какого-либо случайного источника, особенно тот, который не обновлялся за последние 2 года. Или, по крайней мере, используйте сообщество VS2019:

https://www.mathworks.com/matlabcentral/answers/100603-how-can-i-compile-a-matlab-engine-application-using-microsoft-visual-studio-9-0-or-10-0

Ответ №4:

вы могли бы использовать расширение «Matlab Interactive Terminal», ссылка приведена ниже. Чтобы использовать его, вам нужно следовать инструкции по установке «API MATLAB Engine для Python», и все готово (и вам нужен работающий Matlab).

после установки расширения вы могли бы открыть терминал Matlab в окне командной строки (нажав Ctrl Shift P и введя «Открыть терминал Matlab»), и вы могли бы получить тот же терминал Matlab, что и в реальной среде разработки Matlab, и теперь вы можете запускать код .m в Vscode.

Ответ №5:

Вы можете использовать расширение Code Runner и поместить эту строку в свой settings.json :

 "code-runner.executorMapByFileExtension": {
    ".m": "cd $dir amp;amp; matlab -batch "$fileNameWithoutExt""
}
  

Вероятно, вы также захотите установить расширение MATLAB.