2016-11-14 7 views

ответ

-3

так скажем, у вас есть 2 файла в одном каталоге. a.m и b.m В сценарии b.m если вы наберете a как строка кода все в утра будет происходить (присвоения переменных определений функций вычисления и т.д. ...)

Кроме того, вы можете использовать import заявление для добавления вещей в список импорта , как видно here.

+0

У меня чувство «импорт» не работает так, как вы думаете. – Suever

+0

Прочитайте, что делает цель 'import' на этой странице документации .... очень тщательно. Согласуется ли это с вашими рассуждениями здесь? * Подсказка: код в этом вопросе, скорее всего, не ** объектно-ориентированный в дизайне *. – rayryeng

1

Octave syntaxt не полностью совместим с MATLAB. Например, предпочтительный синтаксис для определения функции в октаве, как это:

function ret = f() 
    %do something 
endfunction 

но MATLAB не принимает этот синтаксис и есть другие различия, как различия в вызове родные кодов и ... так что это не просто конвертировать каждую инструкцию октавной библиотеки в matlab или конвертировать oct C++ source в mex.
Простым способом является то, что вы должны иметь установку Octave и запускать октавный скрипт, а затем сохранять результаты в файл мата, а в MATLAB загружать файл. Вы можете использовать функцию system для выполнения октавы или запуска ее из оболочки.

3

Октавный язык является надмножеством языка Matlab. Если qp использовал только язык Matlab, вы можете просто добавить его в свой путь Matlab и сделать с ним.

Однако Octave's qp широко использует язык Octave, поэтому вам в основном нужно портировать код самостоятельно. Для этого нет инструментов, вам нужно преобразовать код с одного языка на другой. Кроме того, фактический решатель - это функция __qp__, которая написана на C++ и использует liboctave. Два легче альтернативы, чем портирование qp являются:

  • сохранить данные из вашей Matlab сессии в файл save foo.mat mydata, вызовите октаву, чтобы сделать работу и сохранить результаты system ('octave --eval ''load ("foo.mat"); qp (...); save foo.mat ...;' и прочитать файл обратно load foo.mat.

  • или гораздо более простая альтернатива, просто используйте Octave.