Лучшие практики программирования MATLAB

31

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

Есть ли какой-то стандартный текст на эту тему? Похоже, что большинство учебников MATLAB написаны учеными или инженерами. Я думаю, что я ищу, это любой учебник MATLAB, написанный инженером-программистом.: -)

Теги:

2 ответа

24
Лучший ответ

MATLAB является необычным выбором для крупномасштабных проектов и подходит для такой задачи, как сборщик, COBOL или SQL. Если вы все еще выбираете MATLAB, то, по крайней мере, автоматически проверяйте код! Все виды тестов - интеграционные тесты, модульные тесты, нагрузочные тесты! И, конечно же, используйте систему контроля версий.

Как сказано, MATLAB не был создан с учетом больших проектов, поэтому единственной лучшей практикой в ​​отношении структуры проекта, модулей, связи является здравый смысл.

Если вы берете на себя существующий большой проект MATLAB, то мне жаль вас, рефакторинг будет кошмаром. Если вы собираетесь начать новый крупный проект с MATLAB, тогда вы сумасшедший - есть намного лучшие альтернативы MATLAB, которые не так уж плохо относятся к числовой производительности. Большой проект подразумевает, что почти весь код является бизнес-логикой, а не числами, поэтому почему ради Бога MATLAB?

Большой проект подразумевает хорошо структурированные компоненты, что подразумевает OO, что является слабым местом MATLAB, потому что оно приносит в жертву производительность кучи для числовой производительности до степени непригодности.

Мой опыт:

  • Я провел годы в полумиллионном проекте LOC MATLAB.
  • Я видел безболезненный переход нескольких больших проектов MATLAB на С#.

С MATLAB вам все равно придется использовать большое количество Java для достойного графического интерфейса, C/С++ MEX для быстрых, не числовых частей, таких как импорт, возможно, SQL и т.д. С Java (или лучше С#) со свободной цифровой библиотекой только один язык, который идеально подходит для всего, что вам нужно в большом проекте.

Я не говорю, что MATLAB - это плохо - это правила для быстрого прототипирования и численного моделирования! И Simulink не имеет альтернатив (но может быть скомпилирован и использован везде).

  • 7
    +1: я во многом согласен с этими настроениями. В моей предыдущей компании мы использовали Matlab для полного моделирования нижних уровней стеков беспроводных протоколов. Это отлично работало для аспектов обработки сигналов, но средства управления и настройки (т. Е. «Бизнес-логика» для динамического управления пользователями и т. Д.) Были абсолютным кошмаром почти не поддерживаемого кода. Я согласен с тем, что язык Matlab просто не предназначен для такой сложности.
  • 14
    @oli Я бы пошел дальше и сказал, что язык Matlab просто не предназначен
8

Вы можете посмотреть "Элементы стиля Matlab" (review Loren Shure).

Кроме того, этот обзор хороших методов кодирования может оказаться полезным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню