Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Simulink и кириллица
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
ChD
Сделал модель в Similink-е (MatLab 7.0.1, Simulink 6.1). Сначала наткнулся на то, что невозможно сделать ни одного комментария или названия по-человечески. Пожалел себя, но перешел на English. Но дальше - интереснее. Сделал модель на домашнем компе (делал долго). А затем решил взять, да и на другой комп (на рабочий) перенести - не все же дома работать smile.gif Но вышло что-то странное. На рабочем компе юзер назван на кириллице. Так вот - этот злобный Simulink ни в какую не хочет модели сохранять, если там есть хоть одна неанглицкая буква. А в модели прописывается имя юзера, который ее последний модифицировал. Т.е. модель сохраняться не хочет. Дается подсказка, что надо изменить параметры кодировки модели. Хелпа по данному свойству нет. Текущая кодировка выставлена на какую-то "ibm-...". На обоих компах WinXP SP2.
Может, кто знает, что можно сделать чтобы:
1. Без создания нового юзера (с именем на латинице) можно было работать нормально.
2. Как вообще можно бы заставить Simulink нормально воспринимать кириллицу.
P.S. Я надеюсь, что это я такой глупый, а то как-то подозревать разработчиков MatLab в национализме не хочется sad.gif
AlexandrY
Я свободно применяю кириллицу.
Посмотрите инициализационный файл в модели по ссылке и коментарий в нем по поводу кириллицы
http://aly.projektas.lt/Projects/MATLAB/DT...coderEvanse.htm
Ostver
AlexandrY
Каким образом поменять в окне графика (figure) шрифт с поддержкой кириллицы (надо сделать экспорт графиков в картинку)?
peter-buganov
[Каким образом поменять в окне графика (figure) шрифт с поддержкой кириллицы (надо сделать экспорт графиков в картинку)?]

вот пример для подписи оси X

>> plot(1:15)
>> xlabel('абвгд');
>> a = get(gca);
>> b = set(a.XLabel,'FontName','Courier');

надо менять свойство 'FontName' у потомков нужной вам axes, в данном случае потомок XLabel, а нужная ахеs - текущая(gca).
Ostver
Сделал таким образом: в файл инициализации matlabrc.m добавил строку :
set(0, 'DefaultAxesFontName', 'font');
где font - любой шрифт с поддержкой кириллицы (например, у меня установлен Times New Roman Cyr).
ChD
Очень благодарен за проявленное сочувствие. Метод AlexandrY не помог. Привожу текст ошибки, выдаваемой MatLab-ом:

Error while saving model '...' using the character encoding setting 'ibm-5347_P100-1998'. The original file (if any) is unchanged. A version of the MDL file with the unsupported characters has been saved in file '...' with a .err extension. In the .err file, the first unsupported character occurs on line ... , byte offset ... .
Use the .err file to identify these characters and remove them in the model in memory before attempting another save. Alternatively for existing models, you may choose to change the character encoding setting of the loaded model using the command: set_param(<model name>,'SavedCharacterEncoding', Enc), where Enc is the encoding setting you are currently using in your MATLAB session.

В help-е информации по свойству 'SavedCharacterEncoding' нет, т.е. я даже не знаю толком, что указывать в "Enc". Есть еще идеи? unsure.gif
ChD
После нескольких проб и ошибок, с подачи участников форума нашел следующий способ одолеть проблему с киррилическим именем юзера под WinXP:
Сначала выполняется команда
"bdclose all; set_param(0, 'CharacterEncoding', 'windows-1252')"
для установки кодировки по умолчанию, а затем после создания/открытия модели в Simulink-е выполнить команду
"set_param(gcs, 'CharacterEncoding', 'windows-1252')"
для установки кодировки для текущей модели.
После этого у меня все заработало, но с одной особенностью - при сохранении и открытии модели генерируется сообщение, что текущая кодировка модели не совпадает с текущей кодировкой среды. Дальнейшие исследования (для приведения в соответствие кодировок) привели к строчному хелпу:
"help slCharacterEncoding"
из которого стало ясно, что кодировка "cp1252" вроде бы поддерживается, но при попытке ее включения происходит следующее:
slCharacterEncoding()
>> ibm-5347_P100-1998
slCharacterEncoding('cp1252')
slCharacterEncoding()
>> ibm-5348_P100-1997
Т.е. устанавливается не та кодировка, что задается в команде. Еще раз повторюсь, что тем не менее все работает за исключением предупреждений <_< Если кому не трудно, прошу провести эксперимент с включением кодировки указанными (или иными) командами и сообщить результат. У меня Matlab v.7.0.1.24704(R14)SP1, Simulink v.6.1 (R14SP1). Спасибо.
s_yakov
Цитата(Ostver @ Aug 15 2005, 12:54) *
Сделал таким образом: в файл инициализации matlabrc.m добавил строку :
set(0, 'DefaultAxesFontName', 'font');
где font - любой шрифт с поддержкой кириллицы (например, у меня установлен Times New Roman Cyr).

Версия 2008b - рекомендации не помогли. Похоже, где-то кодовая страница неправильно переключается.
Есть ли другие рекомендации?
k2i
Я в файл C:\Program Files\MATLAB\R2008a\toolbox\local\startup.m прописал
set_param (0,'CharacterEncoding', 'ISO-8859-1')
s_yakov
Цитата(k2i @ Mar 27 2009, 17:56) *
Я в файл C:\Program Files\MATLAB\R2008a\toolbox\local\startup.m прописал
set_param (0,'CharacterEncoding', 'ISO-8859-1')

проверил на R2008b - не работает
freqzt
Is simulink can be used to simulate RF component like mixer and amplifier?
Альберт
Могу сказать, что если использовать english версию форточек, то проблем с кириллицей на графиках не возникает.
S.V.
В ярлыке для запуска Matlab надо явным образом прописать кодировку, например так:
C:\MATLAB7\bin\win32\MATLAB.exe -r set_param(0,'CharacterEncoding','windows-1252')
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.