Как стать автором
Обновить
9
0

Пользователь

Отправить сообщение

Какая-то проблема с RSS Хабра, этот пост (и следующий анонс) появились в RSS только сегодня.

Я на guide забил очень быстро, после того, как осознал, что он хранит результат в бинарном .fig файле, который совершенно не читается ничем. Соответственно, никакого source control, никакого поиска, вообще ничего. В appDesigner немногим, но всё же лучше - там тоже бинарный формат, но это zip/text, поэтому можно как минимум искать (например, через Total Commander), а при большом желании и настроить внешние системы source control, чтобы они могли сравнивать разные версии (встроенная система вроде как уже работает, но она сама настолько стрёмная, что я предпочитаю работать со внешними клиентами).

В итоге лично мне больше нравится вариант, когда GUI создаётся не ручками, а кодом. Весь функционал GUIDE доступен через функции uicontrol сотоварищи. И результат получается существенно красивее - как минимум проще сделать выравнивание контролов по одному уровню, или одинаковые расстояния между ними. Менять стили проще - мы сделали класс UIToolbox, который дублирует все команды uicontrol, выставляя кучу параметров по умолчанию, например стиль / цвет / шрифт. В этой схеме для того, чтобы перевести всё приложение на новый визуальный стиль достаточно (ну... почти достаточно) переписать этот класс, не трогая всего остального кода - можно представить себе объём работы при аналогичной задаче, когда весь GUI сделан через guide ...

Я, может быть, неправильно понимаю ваш комментарий. Но если мы о сценарии, когда IT-шник получил кредит под 5%, купил квартиру, сдал её кому-то, а сам уехал в условную Францию, продолжая выплачивать 5% в Россию - я не особо вижу смысл это делать. Проще купить квартиру под 1% во Франции и точно так же сдавать её, нет разве? Это именно что мера по удержанию в стране. Ну а что малоэффективная - что смогли сделать, то и сделали.

Это, конечно, грамотная мера по удержанию IT-шников от эмиграции - выдать те же деньги увеличением зарплаты не так привязывает к территории, как покупка квартиры в кредит. Но с другой стороны, в Европе (лично знаю про Францию) ставка по кредитам на недвижимость ~1%. Не говоря уже об уровне зарплаты и общей востребованности.

Спасибо, полезные тексты. Я сам давно работаю на связке Matlab + SVN - примерно тот же принцип, просто исторически так сложилось, что не git.

По поводу сравнения бинарных файлов. Понятно, что в каких-то случаях сам MatLab умеет сравнивать, но для этого приходится жорглировать между двумя утилитами (ваш git desktop или мой tortoise svn - и сам MatLab). Я одно время пытался разобраться, как настроить сравнение непосредственно в утилите, будь то git или svn. Подавляющее большинство "наших" бинарных файлов на самом деле - zip-архивы со множеством xml. И в подавляющем случае сравнения этих xml-файлов было бы достаточно, чтобы понять природу изменения. И вроде как даже и git, и svn поддерживают обработку на лету каких-то форматов, то есть существует возможность сделать предварительную обработку (разархивирование) файла перед сравнением - и пост-обработку (обратное архивирование) после изменений, например в процессе merge.

Но я так и не смог разобраться с тем, как это работает :-/ Так что продолжаю работать так, как у вас описано. Ну и по возможности избегаю бинарных файлов (в MatLab в отличие от SimuLink это достаточно просто, хотя LiveScripts иногда и жаль).

offtopic: опечатка в таге «финансы».
Этот закон и для вторых цифр в числе работает?
Однако, квачи прилетели!
Спасибо, прекрасное решение (я тоже не знал слова «замыкание» — спасибо и за него)!
Да, действительно, я не до такой степени вылизываю свои графики :-)
Единственное, что могу сказать — букву (d) можно легко поставить через annotation, со всем остальным не сталкивался…
У меня каждый график отрисовывается огромное количество раз — каждый раз, когда нашёл баг в коде, ошибку в данных, сделал другую гипотезу и т.п. Поэтому нереально делать неавтоматизированный workflow — график готовится в момент первого вывода данных, а в итоговый документ вставится вариант из последнего запуска программы.
Мне пока что хватало стандартных средств MatLab. Расскажите, что вы не нашли, может помогу чем?
Напишите. Никто же не заставляет вас это читать. А то дойдём до комментариев «напишите лучше про Бритни Спирс, она мне больше MatLab нравится!»
А кто-нибудь знает, как в MatLab синхронизировать две оси Y? То есть, у меня есть два графика, у каждого своя ось Y (слева и справа), и я хотел бы сделать так, чтобы у них, например, совпадали начала отсчёта. Или какие-то другие, заданные мною точки, были бы напротив друг друга. Есть, конечно, вариант всё просчитать самому (YLim, YTicks и т.п.), но наверняка же я не первый человек, столкнувшийся с этой проблемой, вполне возможно, есть уже какая-то работающая функция…
Спасибо! Это я между System.Char и System.String запутался, не мог понять, почему в одних случаях конвертируется, а в другом — нет.
Я видел очень мало приличной литературы «для программистов», всё скорее «для инженеров, которые не знают, что такое „переменная“, но очень хотят программировать». Из полезного — блоги на MathWorks, особенно Loren on the Art of MatLab — встречаются и банальные для программиста темы (объясняла как-то, что такое RegExp), но есть и крайне полезные, неожиданные для меня темы (про индексирование интересно рассказывала, см. одноимённый таг).
Я регулярно использую .NET из MatLab (внешний генератор экономических сценариев), но как-то не хватает понимания того, что конкретно происходит с типами данных. В каких случаях .NET методы возвращают .NET типы, а в каких данные имплицитно конвертируются в типы MatLab. Не подскажешь, что почитать по этому поводу (и спасибо за описание конвертирования матриц в обе стороны — пригодится!)
Переходя к практике: может кто-нибудь посоветовать настраиваемую утилиту форматирования кода? Потому что всё описанное (в части оформления кода) — это хорошо, но когда стандартные IDE не помогают вообще, сложно разношерстную команду подбить под одни правила. Или там, унаследовав от предыдущей команды сотню классов в произвольном форматировании, не хочется терять часы на форматирование ручками.
P.S. У меня конкретно MatLab, но я готов потратить время на конфигурацию готового продукта. Писать с нуля парсер не готов.
Является частным его случаем. В Энигме был не он, а более общий вариант подстановки.
Совершенно верно. Нисколько не пытаясь принизить гений Тьюринга или Реевского, помогал только прямой перебор. Я у себя в ЖЖ законспектировал книгу на эту тему.
Это вопрос терминологии, не будем придираться, все всё поняли — не «бесплатных», но «входящих в цену программы».
1

Информация

В рейтинге
Не участвует
Откуда
Guyancourt, Yvelines, Франция
Зарегистрирован
Активность