簡體   English   中英

我應該如何更改我的“文本和數字字符串到摩爾斯電碼”轉換器的代碼以使代碼能夠運行?

[英]How should I alter my code for my "string of Text & Numbers to Morse code" converter for the code to be able to run?

按鈕回調以轉換為摩爾斯

嗨,我有一個問題,我應該在 MATLAB 中創建一個 GUI,它將字母和數字轉換為摩爾斯電碼,但我的代碼無法運行,上面附加的圖像鏈接用於按鈕回調。 它還說紅色下划線的“莫爾斯”需要預先分配速度,因為它在每次循環迭代時都會改變大小。 我應該如何處理這個? 謝謝..

另外,我應該在我的 edit1 和 edit2 回調下包含任何內容嗎? 因為edit1只用於輸入數字和字母,edit2只用於output莫爾斯電碼。 再次感謝! edit1 & edit2 回調

  1. “莫爾斯”每次循環迭代都會改變大小。 首先,讓我們定義2個變量。
Morse_1 = [];
Morse_2 = zeros(1,100);

(我冒昧地定義矩陣而不是字符串,但這更容易解釋這個概念)。 您基本上是說Morse_1是一個可以填充的空白變量,而Morse_2具有固定尺寸。 Morse_1這樣的空白變量的維度(如果我沒有使用正確的名稱,請原諒我,但我認為空白變量很好地解釋了它)是靈活的。 這意味着做

Morse_1(1,101) = 1

將起作用( Morse_1將是一個 101 維向量,在第 101 個位置有 100 個零和 1)。 正在做

Morse_2(1,101) = 1

也可以,但是如果您在很大程度上高估了尺寸(例如 zeros(1,1000) 但您的消息實際上只達到幾百個),您最終可能會得到太多未使用的元素。

在您的情況下,我會使用一個空白變量,因為您事先並不知道您的編碼消息將持續多長時間(即使您知道原始字符串中的字符數,編碼消息也會是 5 次如果都是 '9's 比所有 'e's 長)。 這個警告在處理 1000x1000 矩陣時非常有用,但對於處理字符串我會忽略它。

總而言之,如果您知道它會得到多長時間,或者您的代碼無法處理可變長度,或者您不想擔心確切計算多少元素是必需的。 另一方面,如果您的代碼需要正確尺寸的數組,或者您正在使用非常大的 arrays,我會使用固定尺寸。 但是,在很多情況下,您真的不會注意到速度差異(填充空白數組可能需要 0.01 秒,而填充固定維度可能需要 0.001 秒。除非您這樣做一千次(為什么? ?),它實際上是不明顯的)。

  1. 就個人而言,我會使用strrep()改變這個循環的工作方式,如下所示:
for i=1:length(alphabet) %alphabet = 26 letters+10 numbers+space, 37 characters in total
    original_message = strrep(original_message,alphabet{i},morse_alphabet{i});
end

strrep(a,b,c)a中找到子字符串b並將其替換為c 在您的情況下,Alphabet 與字典chars相同,而 morse_alphabet 與字典code相同。

至於回調,我真的不知道,所以我不能幫你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM