function [output] = english2morse(text)
% Where a = 1, b = 2, c = 3 ... space numberals start here... 0 - 9 specials characters start here: in this order| begining . , ? ! : " ' = end
definitions = {' .-' ' -...' ' -.-.' ' -..' ' .' ' ..-.' ' --.' ' ....' ' ..' ' .---' ' -.-' ' .-..' ' --' ' -.' ' ---' ' .--.' ' --.-' ' .-.' ' ...' ' -' ' ..-' ' ..-' ' .--' ' -..-' ' -.--' ' --..' ' ' '-----' '.----' '..---' '...--' '....-' '.....' '-....' '--...' '---..' '----.' '.-.-.-' '--..--' '..--..' '..--.' '---...' '.-..-.' '.----.' '-...-'};
output = definitions(text);
end
clc
clear
i = 1;
% Asks user for txt, and checks to see if the input is valid, ifnot, get
% new user input, else break while loop and continue program exectution.
while i == 1
disp('Program converts strings to morce code. ONLY ACCEPTS: A-Z a-z 0-9 , . , ? ! : " `')
pause(1)
text = input('Enter a string: ', 's');
text = lower(text)
disp('Checking to see if correct values entered.')
converted = zeros(1, length(text))
for x = 1:length(text)
% for lowercase
if text(x) >= 97 && text(x) <= 122
% for numberals 0-9
converted(x) = double(text(x) - 96);
i = 0;
elseif text(x) >= 48 && text(x) <= 57
converted(x) = text(x) - 20
i = 0;
% for special characters, listed above
elseif text(x) == 46 || text(x) == 44 || text(x) == 63 || text(x) == 33 || text(x) == 58 || text(x) == 34 || text(x) == 39 || text(x) == 61
switch text(x) == 46 || text(x) == 44 || text(x) == 63 || text(x) == 33 || text(x) == 58 || text(x) == 34 || text(x) == 39 || text(x) == 61
case text(x) == 46
converted(x) = text(x) - 8
case text(x) == 44
converted(x) = text(x) - 5
case text(x) == 63
converted(x) = text(x) - 23
case text(x) == 33
converted(x) = text(x) + 8
case text(x) == 58
converted(x) = text(x) - 16
case text(x) == 34
converted(x) = text(x) + 9
case text(x) == 39
converted(x) = text(x) +5
case text(x) == 61
converted(x) = text(x) - 16
end
i = 0;
else
i = 1;
end
end
end
disp(converted)
disp(english2morse(converted))
答案 0 :(得分:5)
请从脚本中删除以下部分,并将其保存在名为english2morse.m
的文件中:
function [output] = english2morse(text)
% Where a = 1, b = 2, c = 3 ... space numberals start here... 0 - 9 specials characters start here: in this order| begining . , ? ! : " ' = end
definitions = {' .-' ' -...' ' -.-.' ' -..' ' .' ' ..-.' ' --.' ' ....' ' ..' ' .---' ' -.-' ' .-..' ' --' ' -.' ' ---' ' .--.' ' --.-' ' .-.' ' ...' ' -' ' ..-' ' ..-' ' .--' ' -..-' ' -.--' ' --..' ' ' '-----' '.----' '..---' '...--' '....-' '.....' '-....' '--...' '---..' '----.' '.-.-.-' '--..--' '..--..' '..--.' '---...' '.-..-.' '.----.' '-...-'};
output = definitions(text);
end
删除后保存脚本,编辑后保存该功能,再次运行脚本。
说明: MATLAB在功能和脚本之间有所区别。
一个MATLAB代码文件,其中第一个非注释关键字是function
是一个函数,即通常等待某些输入的一段代码,基于此返回一些输出,并介绍两者之间的一些东西。每次调用函数时,所有输入,输出和临时数据都在其自己的函数工作空间中创建。
一个文件 - 不接受最终评论 - 不以function
(或classdef
开头)是一个脚本,并且打算立即执行,使用任何可用的数据。 全局工作区,并将其输出存储在同一个全局工作区中。
现在,MATLAB并不想将函数定义与脚本混合在一起。这就是为什么函数应该在它自己的文件中,并且脚本在它自己的文件中。