Matlab преобразует строку "aaa" в массив ["a", "a", "a"] - PullRequest
3 голосов
/ 23 апреля 2011

Так что я работаю в Matlab и испытываю реальную проблему, пытаясь понять, как работают строки в Matlab.

В основном я пытаюсь загрузить строку в двойной массив в ее двоичной версии.

Так что в основном я хочу загрузить «a» и получить [0 1 1 0 0 0 0 1].

У меня есть следующее ниже, которое преобразует строку в ее двоичное представление, но это только приводит к тому, что у меня "a" = ["01100001"], когда я преобразую ее в массив, и [1100001] при преобразовании в число с использованием str2num

    function loadString(obj, string)
        binaryString = reshape(dec2bin(string, 8), 1, []);

    end

Так что в основном я ищу способ преобразовать строку в массив символов, например "aaa" -> ["a" "a" "a"]. Таким образом, я преобразую двоичную строку в ["0" "1" "1" "0" "0" "0" "0" "1"], а затем преобразую этот массив с помощью str2num.

Ответы [ 2 ]

4 голосов
/ 23 апреля 2011

Это то, что вы ищете:

z = dec2bin('abc',8)'
z1 = z(:)'
z2 = arrayfun(@str2double, z1)

z1 =
011000010110001001100011

z2 =
     0     1     1     0     0     0     0     1     0     1     1     0     0     0     1     0     0     1     1     0     0     0     1     1
2 голосов
/ 23 апреля 2011

Это оптимизация версии Rich C:

z = reshape(dec2bin('abc', 8)', 1, []) - '0'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...