2013-03-19 4 views
0

Я пытаюсь запустить fengdemo.f с помощью CodeBlocks в качестве моего IDE и компилятора GNU Fortran в качестве моего компилятора. Она проходит через включаемые в порядке, но он не может построить любой из вызовов метода в MatLab двигателяВызов Matlab из Fortran

C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|51|undefined reference to `engopen_'| 

C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|58|undefined reference to `mxcreatedoublematrix730_'| 

C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|59|undefined reference to `mxgetpr_'| 

C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|59|undefined reference to `mxcopyreal8toptr730_'| 

C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|64|undefined reference to `engputvariable_'| 

и т.д ...

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

Я не привык использовать Fortran вообще, поэтому любая помощь оценивается.

PS. Fengdemo.f находится под extern/examples/eng_mat, поэтому я не размещал никакого кода.

Вопрос: возможно ли это даже без VFC? И если это может кто-то указать мне в правильном направлении?

ответ

0

Если вы работаете в Windows, единственным компилятором Fortran, поддерживаемым MATLAB, является Intel Visual Fortran Composer. GNU Fortran поддерживается только на Linux или Mac.

http://www.mathworks.co.uk/support/compilers/R2013a/index.html

+0

Да, я пришел к выводу, что я тоже приду ... Думаю, теперь я буду подключаться к Linux .. Спасибо за ответ. – Neppinger

1

Вы можете также сделать некоторые вещи "вручную". В Fortran вы можете использовать подпрограмму «system» для запуска системных команд. Например, если вы находитесь в среде Linux и в Fortran кода вы включите команду

call system("firefox http://stackoverflow.com/") 

Фортран программа будет открыть вкладку/окно Firefox для StackOverflow.

Вы также можете использовать MATLAB от терминала, когда я прочитал (у меня его нет). Например, вы можете вызвать команду ниже для создания графика.

matlab -nosplash -nodesktop -r "ezplot('x')" 

Итак, вы можете создать функцию matlab и вызвать ее через fortran. Уолтер Roberson написал на MATLAB Answers, что вы можете использовать:

matlab -r 'myfunction(argument1,argument2)';

Или безопаснее:

matlab -r 'try myfunction(argument1,argument2); catch; end; quit'

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

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