Преобразование "логической" строки в массив в MATLAB - PullRequest
0 голосов
/ 10 января 2012

Мне нужно преобразовать строку логических индексов в массив, который будет выглядеть следующим образом:

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

Я не контролирую функцию, которая создает строку.

Есть идеи сделать это элегантно? Я уже сделал это с циклом, но это выглядит как-то не так.

Ответы [ 2 ]

5 голосов
/ 10 января 2012
function y = convert(s)
y = find(s == '1');
2 голосов
/ 10 января 2012

Вот вариант, который преобразует каждый символ в число.

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