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

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

求助,一道matlab的题目!

2010-11-20 51自学网




1. 编写一个程序,读取一句英语短语,并将其编制成莫尔斯码,再用一个程序将莫尔斯码变成英语。莫尔斯码是世界上最著名的编码机制,是1832年由Samuel Morse创立的,用于电报系统使用。莫尔斯码编码规则如下:①字母、数字和一些特殊符号(如圆点、逗号、分号)用一系列指定的点和线表示;②单词之间用三个空格分开,没有点和线;③编码字母之间用一个空格。字符/数字 代码 字符/数字 代码 字符/数字 代码A .- M ―― Y -.――B -... N -. Z ――..C -.-. O ――― 1 .――――D -.. P .――. 2 ..―――E . Q ――.- 3 ...――F ..-. R .-. 4 ....-G ――. S ... 5 .....H .... T - 6 -....I .. U ..- 7 ――...J .――― V ...- 8 ―――..K -.- W .―― 9 ――――.L .-.. X -..- 0 ―――――

用法:morsecode=morse('matlabsky baidu wacs5',0) %编码srccode=morse(morsecode,1) %解码morsecode(2)='.'; %修改码srccode=morse(morsecode,1) %错误的morse码进行解码=============以下是m文件==========function Dst=morse(Src,Flag)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Author : wacs5%%Email : wacs5@126.com%%Date : 20101031%%Function : morse(莫斯密码)编码和解码%%Argument : Src为待编码/解码的字符串%% : Flag=0为编码,Flag=1为解码%%Return : Dst为完成的编码/解码的字符串%%Called Mtb : disp,find,isempty,isequal,length,nargin,strrep,warning%%Example: %% : morsecode=morse('matlabsky baidu wacs5',0)%% : srccode=morse(morsecode,1)%% : morsecode(2)='.'; srccode=morse(morsecode,1) %错误的morse码%%See also : http://www.matlabsky.com%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if nargin==1 Flag=0; %缺省为编码endDst=[];SrcAlpha=['A':'Z','1':'9','0']; %原始字母EncAlpha={'.-','-...','-.-.','-..','.','..-.','――.','....','..','.―――','-.-','.-..','――','-.','―――','.――.','――.-','.-.','...','-','..-','...-','.――','-..-','-.――','――..','.――――','..―――','...――','....-','.....','-....','――...','―――..','――――.','―――――'}; %相应的morse码if Flag==0 disp('Encoding'); %编码 for i=1:length(Src) if Src(i)>='a' && Src(i)<='z' %小写转大写 Src(i)=Src(i)-32; end index=find(SrcAlpha==Src(i)); %查找待编码字母在SrcAlpha中的位置 if isempty(index) %不在字典中 Dst=[Dst,' ']; %两个空格。因为字母后面已经有一空格 else Dst=[Dst,EncAlpha{index},' ']; %每个morse码后加一空格 end endelse disp('Decoding'); %解码 if Src(end)~=' ' %最后一个不是空格,添加一个空格,仅为了方便编程 Src(end+1)=' '; end SpaceIndex=find(Src==' '); %找出所有空格位置 SpaceIndex=[0,SpaceIndex]; %将0加入,也仅仅是为了方便编程 for i=1:length(SpaceIndex)-1 Code=Src(SpaceIndex(i)+1:SpaceIndex(i+1)-1);%获得morse密文 if isempty(Code) %连续两个空格 Dst=[Dst,' ']; %译文也为空格 else found=0; %是否在morse编码字典中存在 for j=1:length(EncAlpha) if (isequal(EncAlpha{j},Code)) %在morse编码字典中找到 found=1; break; end end if found==0 %morse编码字典中没有找到,有误 Dst=[Dst,'*']; warning(['Input Code frag "',Code,'" wrong']); else Dst=[Dst,SrcAlpha(j)]; %相应的原文 end end end Dst=strrep(Dst,' ',' '); %多空格合为一个空格end



 

 

matlab出问题了
在哪里可以找到matlab中的s函数模板
我来回答 共有条 回答
用户名: 密码:
验证码: 匿名发表
| AutoCAD | Pro/E | UG | 3Dmax | catia | solidworks | maya | photoshop | 模具设计 | 有限元 | matlab | 计算机图形学 | 室内设计 |