У меня есть 2 файла.m. Одна из них - это функция, а другая (read.m) считывает функцию и экспортирует результаты в файл excel. У меня есть java-программа, которая вносит некоторые изменения в.m файлы. После изменений я хочу автоматизировать выполнение/запуск файлов.m. Я загрузил matlabcontrol.jar, и я ищу способ использовать его для вызова и запуска файла read.m, который затем читает эту функцию. Может ли кто-нибудь помочь мне с кодом? благодаря
Я пробовал этот код, но он не работает.
public static void tomatlab() throws MatlabConnectionException, MatlabInvocationException {
MatlabProxyFactoryOptions options =
new MatlabProxyFactoryOptions.Builder()
.setUsePreviouslyControlledSession(true)
.build();
MatlabProxyFactory factory = new MatlabProxyFactory(options);
MatlabProxy proxy = factory.getProxy();
proxy.eval("addpath('C:\\path_to_read.m')");
proxy.feval("read");
proxy.eval("rmpath('C:\\path_to_read.m')");
// close connection
proxy.disconnect();
}
Основываясь на официальном учебнике в Wiki проекта, кажется довольно простым начать с этого API.
Путь манипулирования может быть немного сложным, но я бы попытался загрузить весь скрипт в строку и передать его в eval
(обратите внимание, что у меня нет опыта работы с этой конкретной библиотекой Matlab). Это можно сделать довольно легко (например, для соединения Files.readAllLines()
).
Надеюсь, что что-то помогает.