If op is uint8, then r must be uint8. If op is uint16, then r must be uint16. It does not let you mix integer types when doing operations on them together. In other words, if op is uint8 and r is uint16, it won't allow that. Your code is more than I want to take the time to read and understand, so it's up to you to figure out what integer type they are and what you need, and make them match. You can use the functions cast(), typecast(), uint8() and uint16() to do any necessary conversion(s).
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Explore similar technical troubleshooting questions and verified MATLAB solutions: