Write a function called integerize that takes as its input a matrix A of integers of type double, and returns the name of the “smallest” signed integer class to which A can be converted without loss of information. If no such class exists, the text 'NONE' is returned. For example, if the smallest element of A is -100 and the largest is +100, then the function would return 'int8'. As another example, if there is an element of A equal to -1e20, then the function would return 'NONE'.
My code is;
if maxA<=((2^7)-1) && minA>=-(2^7); x='int8'; elseif maxA<=((2^15)-1) && maxA>((2^7)-1) && minA>=-(2^15) && minA< -(2^7); x='int16'; elseif maxA<=((2^31)-1) && maxA>((2^15)-1) && minA >=-(2^31) && minA <-(2^15); x='int32'; elseif maxA<=((2^63)-1) && maxA>((2^31)-1) && minA >=-(2^63) && minA< -(2^31); x='int64';elseif maxA<= ((2^8)-1) && minA >= 0; x = 'uint8';elseif maxA<= ((2^16)-1) && maxA >((2^8)-1); x = 'uint16';elseif maxA<= ((2^32)-1) maxA > ((2^16)-1) ; x = 'uint32';elseif maxA<= ((2^64)-1) && maxA > ((2^32)-1) ; x = 'uint64';else x=NONE; endend
But it is not correct. Where is my error?
Best Answer