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?

 Akzeptierte Antwort

Jan
Jan am 29 Apr. 2021

0 Stimmen

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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Gefragt:

am 29 Apr. 2021

Kommentiert:

Jan
am 30 Apr. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by