CAD教程 行业资讯 3D模型下载 Pro/E教程 CAD书店 软件下载 联系我们
技术资料 CAD招聘 发布招聘 CAD问答 设计竞赛 CAD认证 北京CAD培训
视频教程 PS教程 CAD图纸 图书推荐 Solidworks教程 CAD培训 CAD软件商

 最新视频教程Pro/ENGINEER Wildfire2.0 工业设计实例视频教程 (全套免费在线学习)   AutoCAD视频教程每日更新
 
首页 > CAD在线问答 > matlab

a=length('abc一二三') MATLAB执行后得到a=6 即汉字节长度算1 如何将汉字长度算2 使得到的结果为a=9?

2013-06-14 51自学网




经过验证,你所给出的字符串在matlab中占用12个字节
>> str = 'abc一二三'
str =
abc一二三
>> m = whos
m =
name: 'str'
size: [1 6]
bytes: 12
class: 'char'
global: 0
sparse: 0
complex: 0
nesting: [1x1 struct]
persistent: 0
>> m.bytes
ans =
12
>>
追问
不是一般汉字都占两个字节么。。12个字节表示不懂。。
其实我的核心问题是让matlab中将字符串中的汉字字符长度识别为两个字节~不知道大神有方法没?
回答
我不知道有没有这样的库函数,我自己给你写一个。
clear
clc
mysum = 0;
str = 'abc一二三';
for ii = 1:length(str)
p = double(str(ii));
if p<128
mysum = mysum+1;
end
end
mysum1 = length(str)-mysum;
mysum2 = mysum+2*mysum1;
disp('非汉字个数:')
disp(mysum)
disp('汉字个数:')
disp(mysum1)
disp('你要的数值:')
disp(mysum2)
结果如下:
非汉字个数:
3
汉字个数:
3
你要的数值:
9
提问者评价
多谢!思路挺好~
我来回答 共有条 回答
用户名: 密码:
验证码: 匿名发表
| AutoCAD | Pro/E | UG | 3Dmax | catia | solidworks | maya | photoshop | 模具设计 | 有限元 | matlab | 计算机图形学 | 室内设计 |