HELP ME PLEASE??

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;
function x = integerize(A)
maxA = max(A(:));
minA = min(A(:));
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';
else
x=NONE;
end
end
But it is noncorrect;
Problem 1 (integerize):
Testing with argument(s) 0
Feedback: Your function performed correctly for argument(s) 0
Testing with argument(s) 1
Feedback: Your function performed correctly for argument(s) 1
Testing with argument(s) -1
Feedback: Your function performed correctly for argument(s) -1
Testing with argument(s) -127
Feedback: Your function performed correctly for argument(s) -127
Testing with argument(s) -128
Feedback: Your function performed correctly for argument(s) -128
Testing with argument(s) 126
Feedback: Your function performed correctly for argument(s) 126
Testing with argument(s) 127
Feedback: Your function performed correctly for argument(s) 127
Testing with argument(s) 128
Feedback: Your program made an error for argument(s) 128
Your solution is _not_ correct.
I dont understant my fault pleas help me

4 Comments

Geoff Hayes
Geoff Hayes on 6 Nov 2017
Sule - is this homework? Are you submitting your code (somewhere) and it evaluates it giving you the Problem 1 (integerize): Testing with argument(s) 0 Feedback: Your function pe.... What are the inputs to your function for each test case?
SULE SAHIN
SULE SAHIN on 6 Nov 2017
Edited: Walter Roberson on 6 Nov 2017
What is the problem? My code is;
function x = integerize(A)
maxA = max(A(:));
minA = min(A(:));
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;
end
end
But , it is wrong too.
Please do not close questions that have an answer.

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 6 Nov 2017

0 votes

You are only returning the signed integer classes. You have forgotten the unsigned integer classes like uint8

2 Comments

SULE SAHIN
SULE SAHIN on 6 Nov 2017
Edited: Walter Roberson on 6 Nov 2017
function x = integerize(A)
maxA = max(A(:));
minA = min(A(:));
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) && minA >= 0;
x = 'uint16';
elseif maxA<= ((2^32)-1) && minA >= 0;
x = 'uint32';
elseif maxA<= ((2^64)-1) && minA >= 0;
x = 'uint64';
else
x=NONE;
end
end
but;
Undefined function or variable 'NONE'.
Error in integerize (line 22)
x=NONE;
Steven Lord
Steven Lord on 6 Nov 2017
That's correct, there is no function named NONE in MATLAB or any MathWorks products and no variable by that name in your code. But reread the homework assignment carefully -- in the case where none of the integer types fit, what exactly should be returned? What type should that return value be?

Sign in to comment.

Categories

Asked:

on 6 Nov 2017

Commented:

on 27 Apr 2018

Community Treasure Hunt

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

Start Hunting!