Перейти к содержанию
    

Simulink и кириллица

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я свободно применяю кириллицу.

Посмотрите инициализационный файл в модели по ссылке и коментарий в нем по поводу кириллицы

http://aly.projektas.lt/Projects/MATLAB/DT...coderEvanse.htm

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

AlexandrY

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

>> plot(1:15)

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

>> a = get(gca);

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...