tiantaihei 发表于 2006-9-5 16:38

请教高手:6.5和7.0的兼容问题

请教高手一下:mdl文件在6.5里面做的,但是到了7.0里面却打不开,下面就是相关信息:Warning: Unable to load model file 'd:\Program Files\MATLAB704\work\twenty_3.mdl' due to the presence of characters that are not supported in the current character encoding setting 'ibm-1386_P100-2002'. Either:
1) run "bdclose all; set_param(0,'CharacterEncoding', Enc)" where Enc is one of windows-1252, ISO-8859-1, then load the model, or
2) remove the unsupported characters. The first such character occurs on line 170, byte offset 23.
> In general\private\openmdl at 13
In open at 141
In uiopen at 181
Warning: See help sprintf for valid escape sequences.
> In open at 157
In uiopen at 181

然后我按照提示1来作,结果又出现了下面的信息
bdclose all; set_param(0,'CharacterEncoding', Enc)
??? Undefined function or variable 'Enc'.

看那位前辈高手指点一二,不吝致谢!!!

bin1996 发表于 2006-9-6 17:10

bdclose all;
set_param(0,'CharacterEncoding','windows-1252')

tiantaihei 发表于 2006-9-6 17:41

问题解决了,真乃高人也,谢谢呀!!不过我每次要运行那个文件都要执行这两行命令吗?

tiantaihei 发表于 2006-9-6 17:47

bin1996 大虾,如果能解释一下原因就更好了

tiantaihei 发表于 2006-9-7 17:45

另外,执行这个命令后,原来可以显示中文的就全变成了怪字符(乱码),郁闷!!

linlin820 发表于 2006-9-7 21:29

原帖由 tiantaihei 于 2006-9-6 17:41 发表
问题解决了,真乃高人也,谢谢呀!!不过我每次要运行那个文件都要执行这两行命令吗?

这是因为存在中文字符造成的
解决的办法
(1)在工作空间中输入下列命令,然后打开
bdclose all;
Enc='windows-1252';
set_param(0,'CharacterEncoding',Enc);

or
set_param(0,'CharacterEncoding','windows-1252');


(2)在工作空间中输入下列命令,然后打开
bdclose all
set_param(0, 'CharacterEncoding', 'ISO-8859-1')

同样如果要在7.0的模型里用中文注释,然后保存,就需要
set_param('ModelName', 'SavedCharacterEncoding', 'ISO-8859-1')
这里ModelName是你的mdl模型名,而且必须被打开了。

tiantaihei 发表于 2006-9-8 09:40

谢谢linlin820,这里面还存在这样的问题,执行完这样的命令后,别的m文件本来可以显示中文的现在也不能显示了,全成了乱码!!

MVH 发表于 2006-10-21 10:55

原帖由 tiantaihei 于 2006-9-8 09:40 发表
谢谢linlin820,这里面还存在这样的问题,执行完这样的命令后,别的m文件本来可以显示中文的现在也不能显示了,全成了乱码!!

这个是编码的问题,matlab程序中不建议采用中文

lxzdfk 发表于 2006-10-24 10:06

是的,有中文就打不开的

justnow666 发表于 2006-11-3 16:43

受教了

zhyprs 发表于 2006-11-23 10:33

受益匪浅!谢谢。

年轻哈咯 发表于 2009-6-4 01:30

在command window中输入下列命令,然后打开

bdclose all;

set_param(0,'CharacterEncoding','windows-1252')


在工作空间中输入下列命令,然后打开

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)文件存放的路径也要用英文,如:C:\MATLAB7\work\matwav。
页: [1]
查看完整版本: 请教高手:6.5和7.0的兼容问题