2010-07-26 2 views
1

Есть ли способ вернуть массив perl в MATLAB? Или мне просто нужно вернуть строку и разобрать ее? Я использую вызов от MATLAB к скрипту perl для взаимодействия с базой данных MySQL. После того, как я получу результаты запроса, я хочу передать его обратно в MATLAB.Возвращает массив perl в MATLAB

EDIT: Я использую модифицированную версию perl.m для вызова сценария perl. Он называет версию perl с установленным DBI, а не копией, поставляемой с MATLAB.

я изменил линию 65 из perl.m от

perlCmd = fullfile(matlabroot, 'sys\perl\win32\bin\'); 

в

perlCmd = 'C:\Perl64\'; 
+0

Пожалуйста, укажите код, как вы взаимодействуете между Matlab и Perl. – Ether

+0

Я использую встроенный файл perl.m из Matlab. Он просто вызывает вызов dos для perl и возвращает результат. – Doresoom

+1

Есть ли какая-то конкретная причина, по которой вам нужно использовать perl? Соединение MATLAB с MySQL намного проще с использованием JDBC и возвращает все результаты запроса непосредственно в рабочее пространство MATLAB. – Adrian

ответ

1

как вы звоните ваш PERL скрипт? если вы просто выполняете системный вызов, вы можете возвращать только вывод строки.

вы можете посмотреть в оборачивать ваш вызов в MEX файла или записи .mat файлов из Perl, но я подозреваю, что строка синтаксического анализ может быть проще, особенно для небольших массивов

EDIT

мозговых то, что я сделал когда-то в подобной ситуации (пришлось перенести данные в MATLAB) должен был генерировать файл .m, который создает матрицу MatLab, т.е.

array = [ 
      1, 2, 3; 
      4, 5, 6; 
     ]; 

и сохранить на диске. когда программа была закончена, я просто назвал m-файл, чтобы получить данные в мое рабочее пространство.

+0

У меня очень мало опыта работы с perl и гораздо больше опыта работы с MATLAB, поэтому я бы предпочел сделать большую часть своего программирования в среде, с которой я знаком. – Doresoom

+0

Насколько велики (ish) массивы, о которых мы говорим? идет через строки немыслимы? – second

+0

Возврат моих запросов может составлять до нескольких тысяч точек данных. Я не думаю, что это должна быть проблема, но я еще не изучал производительность. – Doresoom

Смежные вопросы