在MATLAB中将“布尔”字符串转换为数组

时间:2012-01-10 10:59:24

标签: matlab octave

我需要将一串布尔索引转换为一个如下所示的数组:

convert('11001') = [1 2 5]
convert('0000') = []
convert('001') = [3]

我不控制产生字符串的函数。

有什么想法以优雅的方式做到这一点?我已经做了一个循环,但它看起来有点错误。

2 个答案:

答案 0 :(得分:5)

function y = convert(s)
y = find(s == '1');

答案 1 :(得分:2)

以下是将每个字符转换为数字的变体。

function y = convert(s)
y = find(str2num(s')')