簡體   English   中英

我該如何解決八度音程中出現水平尺寸不匹配錯誤的問題

[英]how can I solve the problem where I get the error horizontal dimensions mismatch in octave

我有這個八度代碼


PLAINTXT = "ABC";
UNICODED = [];
BINARY_VALUE = [];

for i = PLAINTXT

  UNICODED = [UNICODED, unicode2native(i, "ISO-8859-1")];
  BINARY_VALUE = [BINARY_VALUE, dec2bin(UNICODED)]
%% stop
endfor


它采用純文本“ABC”並使用 ascii 編碼系統將其轉換,然后將其轉換為二進制,但我需要每個都在一個單獨的集合中,當我第一次轉換純文本時它對我有用,但它給了我錯誤“錯誤:水平尺寸不匹配(1x7 與 2x7)”,我不知道是什么問題。

我嘗試按照上面的代碼進行操作,我還嘗試在現有的 on 中創建另一個 for 循環並在其中運行行“BINARY_VALUE = [BINARY_VALUE, dec2bin(UNICODED)]” 但它仍然給我相同的結果

標量a dec2bin(a)返回一個字符串,而在 Octave 中,字符串是一個 1xN 字符數組。

數組adec2bin(a)返回 nxN 字符數組(n 是a中的元素數)。

因此,在第二次迭代中,當您到達BINARY_VALUE = [BINARY_VALUE, dec2bin(UNICODED)]

  • BINARYVALUE是第一次迭代后的 1x7 字符數組
  • UNICODED是一個 1x2 uint8數組
  • dec2bin(UNICODED)因此是一個 2x7 字符數組 所以你確實在嘗試將 append 一個 2x7 字符數組轉換為 1x7 字符數組,這是不可能的。

我不確定你最后想要什么,但你可以這樣做:

PLAINTXT = "ABC";
UNICODED = [];

for i = PLAINTXT
  UNICODED = [UNICODED, unicode2native(i, "ISO-8859-1")];
endfor
BINARY_VALUE = dec2bin(UNICODED);

結果:

>> UNICODED
UNICODED =

  65  66  67

>> BINARY_VALUE
BINARY_VALUE =

1000001
1000010
1000011

暫無
暫無

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

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