Jump to content

    

Simulink и кириллица

Сделал модель в Similink-е (MatLab 7.0.1, Simulink 6.1). Сначала наткнулся на то, что невозможно сделать ни одного комментария или названия по-человечески. Пожалел себя, но перешел на English. Но дальше - интереснее. Сделал модель на домашнем компе (делал долго). А затем решил взять, да и на другой комп (на рабочий) перенести - не все же дома работать :) Но вышло что-то странное. На рабочем компе юзер назван на кириллице. Так вот - этот злобный Simulink ни в какую не хочет модели сохранять, если там есть хоть одна неанглицкая буква. А в модели прописывается имя юзера, который ее последний модифицировал. Т.е. модель сохраняться не хочет. Дается подсказка, что надо изменить параметры кодировки модели. Хелпа по данному свойству нет. Текущая кодировка выставлена на какую-то "ibm-...". На обоих компах WinXP SP2.

Может, кто знает, что можно сделать чтобы:

1. Без создания нового юзера (с именем на латинице) можно было работать нормально.

2. Как вообще можно бы заставить Simulink нормально воспринимать кириллицу.

P.S. Я надеюсь, что это я такой глупый, а то как-то подозревать разработчиков MatLab в национализме не хочется :(

Share this post


Link to post
Share on other sites

AlexandrY

Каким образом поменять в окне графика (figure) шрифт с поддержкой кириллицы (надо сделать экспорт графиков в картинку)?

Share this post


Link to post
Share on other sites

[Каким образом поменять в окне графика (figure) шрифт с поддержкой кириллицы (надо сделать экспорт графиков в картинку)?]

 

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

 

>> plot(1:15)

>> xlabel('абвгд');

>> a = get(gca);

>> b = set(a.XLabel,'FontName','Courier');

 

надо менять свойство 'FontName' у потомков нужной вам axes, в данном случае потомок XLabel, а нужная ахеs - текущая(gca).

Share this post


Link to post
Share on other sites

Сделал таким образом: в файл инициализации matlabrc.m добавил строку :

set(0, 'DefaultAxesFontName', 'font');

где font - любой шрифт с поддержкой кириллицы (например, у меня установлен Times New Roman Cyr).

Share this post


Link to post
Share on other sites

Очень благодарен за проявленное сочувствие. Метод 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:

Share this post


Link to post
Share on other sites

После нескольких проб и ошибок, с подачи участников форума нашел следующий способ одолеть проблему с киррилическим именем юзера под 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). Спасибо.

Share this post


Link to post
Share on other sites
Сделал таким образом: в файл инициализации matlabrc.m добавил строку :

set(0, 'DefaultAxesFontName', 'font');

где font - любой шрифт с поддержкой кириллицы (например, у меня установлен Times New Roman Cyr).

Версия 2008b - рекомендации не помогли. Похоже, где-то кодовая страница неправильно переключается.

Есть ли другие рекомендации?

Share this post


Link to post
Share on other sites

Я в файл C:\Program Files\MATLAB\R2008a\toolbox\local\startup.m прописал

set_param (0,'CharacterEncoding', 'ISO-8859-1')

Share this post


Link to post
Share on other sites
Я в файл C:\Program Files\MATLAB\R2008a\toolbox\local\startup.m прописал

set_param (0,'CharacterEncoding', 'ISO-8859-1')

проверил на R2008b - не работает

Share this post


Link to post
Share on other sites

Is simulink can be used to simulate RF component like mixer and amplifier?

Share this post


Link to post
Share on other sites

Могу сказать, что если использовать english версию форточек, то проблем с кириллицей на графиках не возникает.

Share this post


Link to post
Share on other sites

В ярлыке для запуска Matlab надо явным образом прописать кодировку, например так:

C:\MATLAB7\bin\win32\MATLAB.exe -r set_param(0,'CharacterEncoding','windows-1252')

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this