mdl文件在6.5里面做的,但是到了7.0里面卻打不開,下面就是相關信息:
Warning: Unable to load model file 'd:\MATLAB7\work\*.mdl'.? ?Run "bdclose all; set_param(0, 'CharacterEncoding', Enc)" where Enc is one of windows-1252, ISO-8859-1, then load the model.? ?The first character that is not supported in the current character encoding setting ('ibm-1386_P100-2002') occurs on line 1795, byte offset 21. To correctly load models with non-ASCII characters, you must explicitly use the character encoding that was used to save the file.? ?Type "help slCharacterEncoding" for more information on setting character encoding and to learn more about which encodings are commonly found on your platform.
問題產生原因:模型中含有不能識別的字符,比如中文等等,尤其是matlab對中文的支持不是很好(不知道是不是D版的原因)。
解決的辦法:
(1)在工作空間中輸入下列命令,然后打開
bdclose all;
set_param(0,'CharacterEncoding','windows-1252')
或(2)在工作空間中輸入下列命令,然后打開
bdclose all
set_param(0, 'CharacterEncoding', 'ISO-8859-1')
或(3)用寫字板或記事本打開模型文件*.mdl,發現原來是有漢字不能識別,將其改為英文,存盤退出即可。
注:可能出現問題的參數是“LastModifiedBy”,這是最后修改模型人的名字;假如你的機子裝系統的時候個人名字和單位填的是中文的話就要注意了,你裝matlab時默認得也是這個中文名字,如果不改的話就會出現這個問題了。所以大家盡量用英文(包括S-function的注釋),以避免不必要的麻煩!
同樣如果要在7.0的模型里用中文注釋,然后保存,就需要
set_param('ModelName', 'SavedCharacterEncoding', 'ISO-8859-1')
這里ModelName是你的mdl模型名,而且必須被打開了。
幾點建議:
(1)建議大家都統一用matlab7.0版本的,一些7.0.1等等如無必要,就不要裝了。順便說一下,有人說裝了matlab7.0以后,系統進程里有一個Matlab Server.exe,占用內存很大,去掉的方法就是在管理工具->服務中將的啟動類型由“自動”改為”禁止“就可以了。
(2)盡量避免用中文!
1)裝matlab的時候,注意你的用戶及單位一定要用英文或數字,不要用中文;
2)自己封裝的模塊名字不要用中文,模型中的注釋也要用英文;
3)文件存放的路徑也要用英文。