Упаковка кода MATLAB - PullRequest
       5

Упаковка кода MATLAB

3 голосов
/ 25 февраля 2010

В недавнем вопросе " Как организовать код MATLAB? " Эндрю Янке упомянул в своем ответе использование классов для организации функций MATLAB в пакеты:

... рассмотрите возможность переписать часть кода как объекты, используя утилиту без сохранения состояния классы с методами класса и частными функциями как способы упаковки, связанные функционирует вместе и обеспечивает некоторую инкапсуляцию. ... В классические MATLAB, классы - ваш единственный способ сделать какие-то пакеты .

Не могли бы вы предоставить больше информации об этом? Ссылки, примеры кода для понимания концепции.

Ответы [ 2 ]

2 голосов
/ 03 июля 2013

Не используйте классы для упаковки

Классы в Matlab имеют известные ограничения (начиная с производительность масштабируемость и т. Д.). Прежде чем приступить к использованию ООП в MATLAB, сначала изучите "+" упаковку (т.е. не "@" или дескрипторы).

Заявления типа import foo.bar работают так, как и ожидалось (также отметьте this ).

Предостережение: если вам действительно нужен ООП, просто подумайте о выборе другого языка, прежде чем делать это в MATLAB. Мне пришлось переписать мой код ООП MATLAB обратно в функции и пакеты, потому что реализация ООП Mathworks просто «незрелая». Первые проблемы начинаются с parfor, когда вещи должны быть сериализованы с накладными расходами, а затем все еще ломаются слишком часто.

2 голосов
/ 25 февраля 2010

Лорен принимал гостевого блогера, чтобы обсудить эту проблему:

http://blogs.mathworks.com/loren/2008/08/18/when-to-create-classes-in-matlab/

Я сделал простое видео об этом:

http://blogs.mathworks.com/videos/2008/07/07/advanced-matlab-class-system-for-oop-in-matlab-introduction/

Конечно, документация MATLAB для этого:

http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_oop/brh2rgw.html

...