bin2gary: Conversion to char from logical is not possible
5 次查看(过去 30 天)
显示 更早的评论
hello
i need to convert binary to gary. i did my search and i found this:
function g = bi2gray( b )
g(:,1) = b(:,1);
for i = 2:size(b,2)
g(:,i) = xor( b(:,i-1), b(:,i) );
end
return;
but when i give it a binary number like this:
x=10;
x1=dec2bin(x);
bi2gray(x1)
this error is occured:
Conversion to char from logical is not possible.
Error in bi2gray (line 15)
g(:,i) = xor( b(:,i-1), b(:,i) );
0 个评论
回答(1 个)
DGM
2022-1-16
编辑:DGM
2022-1-16
The output of dec2bin() is a character array. If you want to do logical operations on it, you have to convert it first.
x = 10;
x1 = dec2bin(x); % this is a char vector
x1 = x1 == '1'; % this is a logical vector
output = bi2gray(x1)
That said, I'm not sure how this is supposed to convert binary to gray. Is the output supposed to be the same as the input (decimal 10)? If so, why not just do:
x = 10;
x1 = dec2bin(x); % this is a char vector
output = bin2dec(x1)
Bear in mind that if you're doing this with images, the output is now improperly-scaled for its class (double), and so it won't be handled correctly by imshow() or imwrite() until it is rescaled or recast appropriately.
function g = bi2gray( b )
g(:,1) = b(:,1);
for i = 2:size(b,2)
g(:,i) = xor( b(:,i-1), b(:,i) );
end
end
3 个评论
DGM
2022-1-16
Oh Gray code. Yeah I thought you were trying to convert an image to a grayscale representation.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!