MatLab 6.5: Символьная математика и компиляция

Nestor

1. Насколько мне известно, в MatLab (по крайней мере, в Release 13 - версия 6.5) встроен урезанный Maple 9, который и занимается символьной математикой. Взять двумерный интеграл, зависящий от параметров, у меня в МатЛабе этом не получилось (правда, может быть, он и не берется в элементраных функциях). Вопрос: изменится ли что-нибудь, если прогнать этот интеграл в полном Maple 9? (Спрашиваю, так как совершенно не знаю Maple, ни разу не работал в нем и он у меня не стоит). Если нет, какой софт мог бы помочь?
P.S. Аналогичный случай был с функцией qhull. Она по идее куплена МатЛабом. В МатЛабе 6.0 (Release 12) считает довольно плохо и неправильно на размерностях >=4 при большом количестве точек, в версии 6.5 работает на порядок лучше, а вот исходники с *.org считают совершенно правильно...

Nestor

2. Можно ли преобразовывать код MatLab'а (т.е. m-файлы) в язык C/C++ встроенными матлабовскими средствами?
3. А компилировать программы? (по-моему, нет, но научрук как-то обмолвился что мол, кто-то из его студентов выяснял, что можно...)
В общем, для меня довольно насущные вопросы. Заранее благодарен

perko

попробуй в maple или в mathematika , но ты уверен что там стоит 9 версия а не 5 -я ? вроде 5-я была ?
про перекодировку в с , почитай в хелпе ...
но тебе при этом , насколько я понимаю, придется со своим экзешником на с еще кучу ( большую) таскать dll ек из матлаба ....

Nestor

Да, спасибо, действительно Maple V. Преувеличил возможности менеджеров matlab ) Просто уже 9 версия есть, я и подумал, что сразу новую и встроили. Ладно, попробую этот новый maple и пятую mathamatica.
Эх, а с С фигня... Имхо, легче самому взять и написать прогу :-/

perko

самому точно легче , там такой код генерится , что голову сломаешь

Ivan8209

Зависит от постановки задачи.
---
...Я работаю антинаучным аферистом...

Busenka76

можно траслировать код в c и в c++, для этого есть команда mcc, почитай в хелпе, там все написано. Кстати я компилял не родным матлабовским компилятором, а тем, что в visual studio 6.0, т.к. компилированные там программы работают быстрее. Кстати, не знаешь как узнать какие библиотеки нужно программе, чтобы она работала на компьютере без установленных matlab'a и visual studio?

Nestor

Да, почитал... Ну я ламо тупое Ведь это же так просто - help/matlab compiler... А все из-за того, что год (!) назад услышал от чела, который был рюхом по МатЛабу, что это своеобразный копирайт MathWorks - нельзя компилировать проги.
2 : извини, совсем не рюхаю тонкостей компиляции. Вот только что пару часов назад узнал, что она вообще-то существует(!)...
P.S. Код на С генерит, конечно, сумасшедий %^

maggi14

а нет мазы слинковать библиотеки статически?

Nestor

Как ты это предлагаешь сделать?

perko

во и мне расскажите , я тоже хочу узнать ?

Busenka76

Я и сам не особо знаток таких вещей, немножко узнал опытным путем. Пишешь в командной строке mbuild -setup (прокатит как из-под матлаба, так и при не загруженном он предложит выбрать компилятор, которым будешь все делать, ну и если у тебя их в системе установлено несколько, то он их находит автоматически и предлагает выбрать. А про статическую линковку библиотек не знаю, ну не учили нас на факе этому, а самому не довелось с этим сталкиваться. Кстати при компиляции если выполнять с параметром -v, то он валит кучу инфы, в том числе и следующее:

linkflags: kernel32.lib user32.lib gdi32.lib advapi32.lib oleaut32.lib ole32.lib /LIBPATH:"C:\MATLAB6p5\extern\lib\win32\microsoft\msvc60" libmmfile.lib libmatlb.lib /nologo libmx.lib libmat.lib libmwservices.lib libmex.lib libut.lib sgl.lib C:\MATLAB6p5\extern\lib\win32\libmatpm.lib

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

Nestor

По ходу он прописывает (не встраивая в текст exe-шника) ссылки как на библиотеки из windows\system32, так и на чисто матлабовские, используемые при компиляции. Можно ли переписать эти пути\заставить матлаб их искать в корневом каталоге (каталоге программы).. ?

rosali

Блин, чего вы тупите-то? .lib - это _статически_ линкуемые библиотеки, они нужны на момент компиляции... Вас же интересует какие .dll (_динамически_ линкуемые библиотеки) нужны в момент выполнения... Ничего общего.

Dasar

При использовании dll-ки обычно подключается h и lib.

Nestor

Сорри Вообще-то я знаю, что такое процесс compiling - building - linking.. Глюк из темы "Вижу одно - думаю второе - пишу третье". Короче, хватит трепать языком, надо помахать матушке-лени ручкой, сесть и самому разобраться.
P.S. А Maple 9 так интеграл и не посчитал... Забил всю оперативную память, сделал мне файл подкачки почти на гиг (950 с хреном а потом так мило выскочило сообщение об ошибке (что-то типа переполнения стека) %^
Оставить комментарий
Имя или ник:
Комментарий: