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?

 Réponse acceptée

Jan
Jan le 29 Avr 2021

0 votes

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 commentaires

Neeraj Chimwal
Neeraj Chimwal le 30 Avr 2021
I have been trying this for 2 days, but never thought of converting to double.
Now I feel dumb.
Anyway thankyou
Jan
Jan le 30 Avr 2021
The error message is not optimal. Better:
For 'hamming' code with decimal data, MSG must be a <double> vector.
Neeraj Chimwal
Neeraj Chimwal le 30 Avr 2021
Yes, the error message is not helpful for beginners
Jan
Jan le 30 Avr 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by