声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2985|回复: 11

[综合讨论] 请教高手:6.5和7.0的兼容问题

[复制链接]
发表于 2006-9-5 16:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请教高手一下: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'.

看那位前辈高手指点一二,不吝致谢!!!
回复
分享到:

使用道具 举报

发表于 2006-9-6 17:10 | 显示全部楼层
bdclose all;
set_param(0,'CharacterEncoding','windows-1252')

评分

1

查看全部评分

 楼主| 发表于 2006-9-6 17:41 | 显示全部楼层
问题解决了,真乃高人也,谢谢呀!!不过我每次要运行那个文件都要执行这两行命令吗?
 楼主| 发表于 2006-9-6 17:47 | 显示全部楼层
bin1996 大虾,如果能解释一下原因就更好了
 楼主| 发表于 2006-9-7 17:45 | 显示全部楼层
另外,执行这个命令后,原来可以显示中文的就全变成了怪字符(乱码),郁闷!!
发表于 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模型名,而且必须被打开了。

评分

1

查看全部评分

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


这个是编码的问题,matlab程序中不建议采用中文
发表于 2006-10-24 10:06 | 显示全部楼层
是的,有中文就打不开的
发表于 2006-11-3 16:43 | 显示全部楼层
受教了
发表于 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。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-13 11:28 , Processed in 0.073989 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表