Matlab将字符串“aaa”转换为[“a”,“a”,“a”]数组

时间:2011-04-22 23:34:06

标签: matlab data-structures string

所以我在Matlab工作并且在尝试理解字符串在Matlab中的工作方式时遇到了一个真正的问题。

基本上我正在尝试将字符串加载到二进制版本的双数组中。

所以基本上我想加载“a”并得到[0 1 1 0 0 0 0 1]。

我在下面将字符串转换为二进制表示,但这只会导致我在将其转换为数组时使用“a”= [“01100001”]而在使用str2num转换为数字时使用[1100001]

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

    end

所以基本上我正在寻找一种方法将字符串转换为字符数组,即“aaa” - > [“a”“a”“a”]。这样我将binaryString转换为[“0”“1”“1”“0”“0”“0”“0”“1”]然后使用str2num转换该数组。

2 个答案:

答案 0 :(得分:4)

这就是你要找的东西:

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

答案 1 :(得分:2)

这是Rich C版本的优化:

z = reshape(dec2bin('abc', 8)', 1, []) - '0'