Hi.
I am trying to encode my gray scale image using encode(img,291,247,'hamming/decimal') but I get this error :
Error using encode (line 78)
For 'hamming' code with decimal data, MSG must be a vector.
If I convert it to a vector using img = img(:), I get this error
Error using *
MTIMES (*) is not fully supported for integer classes. At least one argument must be scalar.
Error in encode (line 117)
code = rem(msg * gen, 2);
Error in dummy (line 5)
encoded = encode(img,127,120,'hamming/decimal');
Can you please help me with this?

 Respuesta aceptada

Jan
Jan el 29 de Abr. de 2021

0 votos

What is the type of the variable img? The documentation of encode() mentions, that the 1st input must by a double. So try:
encode(double(img(:)), 291, 247, 'hamming/decimal')

4 comentarios

Neeraj Chimwal
Neeraj Chimwal el 30 de Abr. de 2021
I have been trying this for 2 days, but never thought of converting to double.
Now I feel dumb.
Anyway thankyou
Jan
Jan el 30 de Abr. de 2021
The error message is not optimal. Better:
For 'hamming' code with decimal data, MSG must be a <double> vector.
Neeraj Chimwal
Neeraj Chimwal el 30 de Abr. de 2021
Yes, the error message is not helpful for beginners
Jan
Jan el 30 de Abr. de 2021
I do agree with you. It would be useful if you write an enhancement request to TMW to fix this message. You can include a link to this question, to explain the details.

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 29 de Abr. de 2021

Comentada:

Jan
el 30 de Abr. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by