Привет У меня есть матрица символов, представляющая двоичные числа. Например:Преобразование матрицы типа char для ввода логического в matlab
0000
1010
0111
.
.
.
1010
Как его преобразовать в логическую матрицу?
Привет У меня есть матрица символов, представляющая двоичные числа. Например:Преобразование матрицы типа char для ввода логического в matlab
0000
1010
0111
.
.
.
1010
Как его преобразовать в логическую матрицу?
Вы можете сравнить его с характером '1'
>> A=['0101';'1011']
A =
0101
1011
>> A=='1'
ans =
0 1 0 1
1 0 1 1
Попробуйте
b_bin = logical(b(:)'-'0')
если b
это имя вашей матрицы.
Здравствуйте, это дает один длинный ряд .. мне это нужно, чтобы сохранить размеры матрицы. – axcelenator
Это то, что вы хотите?
a = {'0000'; '1010'; '0111'};
b = logical(double(cell2mat(a)) - 48);
дает,
>> b
b =
0 0 0 0
1 0 1 0
0 1 1 1
>> class(b)
ans =
logical
что означает -48? – axcelenator
, потому что 'double' преобразует символ из кода ascii, а в таблице ascii' 0' - это номер '48', а' 1' - '49'. – SamuelNLP
Хорошо спасибо. – axcelenator
Спасибо, что сработало – axcelenator