[英]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 字符數組。
數組a
的dec2bin(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.