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 个评论

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?
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.

请先登录,再进行评论。

回答(1 个)

Walter Roberson
Walter Roberson 2017-11-6

0 个投票

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

2 个评论

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;
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?

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by