Последние новости
Полезные ссылки
Сообщение о землетрясении
Если Вы ощутили землетрясение, пожалуйста, сообщите о нёмПереезд Matlab из Windows в Linux
Matlab прекрасно чувствует себя в Linux, поскольку этот крутой продукт есть для Linux. При переносе разработки в Linux из Windows следует учесть следующие моменты:
- Кодировка текстов программ (файлов .m) в Windows - cp1251, а в Linux - utf-8.
После копирования файлов в Linux необходимо конвертировать их содержимое в соответствующую кодировку. Для этого удобно использовать программу iconv:
iconv -f cp1251 myfunction.m -t utf-8 >myfunction.m.utf8
mv -f myfunction.m.utf8 myfunction.m
Примечание: если надо перенести файлы из Linux в Windows, то поменяйте в командной строке направление перекодировки.
Для массовой перекодировки лучше всего воспользоваться программой на shell:
for i in *.m
do
iconv -f cp1251 $i -t utf-8 >tmp.utf8
mv -f tmp.utf8 $i
done
- Если в матлабовской программе прямо указывались пути к файлам, то:
- вместо имени диска E: пишите каталог, где у вас теперь лежат файлы, например: /data/...
- вместо обратного виндового слеша '\' пишите '/'
Пример:
файл в Windows назывался E:\collection\2009-06-02\test.dat
В Linux будет: /mnt/windata/collection/2009-06-02/test.dat
Важное замечание:
Чтобы из-за разного написания слешей вам не приходилось переписывать программы,
используйте стандартное решение Matlab - функцию filesep. Например:
Программый код в Windows:
mydir = ['data' filesep 'Jul' filesep 'week2']
В результате переменная mydir примет значение data\Jul\week2
Та же строка программы в Unix/Linux:
mydir = ['data' filesep 'Jul' filesep 'week2']
В результате переменная mydir примет значение data/Jul/week2
Если ваша программа в Windows использовала номера символов в строке и разбираемая строка была типа C:\mydata\myfile\... , то в Linux проще всего положить файлы в каталог с названием /C . Тогда длина имени в символах сохранится. Пример:
Windows : C:\mydata\myfile.mpg
В Linux : /C/mydata/myfile.mpg
- Печать кода программы на принтере из Matlab в той версии, что я видел (7.7.0.471), содержит ошибку в JRE, что включена в состав Matlab. Вместо окна выбора принтера вы получаете Java Exception на экране. Лечится просто - надо подменить JRE на свежую версию. Я поменял на 1.6.0_12 и проблема решилась. Для этого перепишите каталог jre из вашего JDK или JRE вместо каталога MATDIR/sys/java/jre/glnx86/jre, где MATDIR - это каталог, куда вы установили сам MATLAB.
- Работа в многоэкранном(TwinView, Xinerama) режиме (2 монитора) может вызвать исключение, связанное с графическим устройством (напримем, при масштабировании графиков). Также без TwinView Matlab просто отказывался запускаться на втором экране. Лечится так же, как и в предыдущем пункте - заменой JRE.
- При редактировании графиков в подписях-надписях надо менять шрифт с Helvetica на Arial или любой другой юникодный, чтобы они отображались русским текстом. Достаточно ткнуть в надпись и подправить шрифт.
Некоторые приколы:
В версии Matlab R2001b пришлось делать следующее:
1. В Alt Linux 6.0 установить пакет lsb. Иначе не работает License Manager.
2. Установить пакет libXp. Иначе Матлаб осыпается без намёка даже где.
3. Отключить OpenGl. Переименовываю файл R2011b/bin/glnx86/glren.so во что-то не .so. (Баг описан самими разработчиками).