I don't understand what is the problem.....i tried it, but get an error. So plz help me to solve the problem...

1 回表示 (過去 30 日間)
"Write a function called integerize that takes as its input a matrix A of non-negative integers of type double, and returns the name of the “smallest” unsigned integer class to which A can be accurately converted. If no such class exists, the string 'NONE' is returned. For example, if the largest integer A is 14, then the function would return 'uint8', but if the largest integer in A is 1e20, then the function would return 'NONE'."

回答 (5 件)

Walter Roberson
Walter Roberson 2015 年 5 月 30 日
hint: log2()

Image Analyst
Image Analyst 2015 年 5 月 30 日
Hint: see functions intmax() and max()
mavValue = max(A(:))
if maxValue < intmax('uint8')
and so on...
  3 件のコメント
Muhammad Usman Saleem
Muhammad Usman Saleem 2015 年 6 月 1 日
@image in another approach i use..
function integ=integerize(A)
if int(A) && uint(A)
if max(A)<=intmax('uint16')
integ='uint16';
elseif max(A) <= intmax('uint32')
integ='uint32';
elseif max(A) <= intmax('uint64')
integ='uint64';
elseif mod(A,1)=>0
integ='NONE';
end
end
end
but the error remains same as mentioned above..
Image Analyst
Image Analyst 2015 年 6 月 1 日
Muhammad, It looks like you've gotten your own thread started in this other thread so we'll just have the discussion over there.

サインインしてコメントする。


Mostafa Farhoudi
Mostafa Farhoudi 2015 年 7 月 15 日
編集済み: Walter Roberson 2015 年 7 月 16 日
function integ=integerize(A)
integ = 'none';
maxValue=max(A(:));
disp(maxValue);
if maxValue <= intmax('uint8')
integ='uint8';
elseif maxValue<=intmax('uint16')
integ='uint16';
elseif maxValue <= intmax('uint32')
integ='uint32';
elseif maxValue <= intmax('uint64')
integ='uint64';
else
integ='NONE';
end
end

charu sharma
charu sharma 2015 年 8 月 20 日

Pranash Azrot
Pranash Azrot 2015 年 8 月 25 日
yaar mera answer teek see.
function u = integerize(A)
g =max(max(A));
if (g>255 && g<=intmax('uint16'))
u = 'uint16';
elseif (g<0 || g>intmax('uint64'))
u = 'NONE';
elseif (g>intmax('uint16') && g<=intmax('uint32'))
u = 'uint32';
elseif (g>intmax('uint32') && g<=intmax('uint64'))
u = 'uint64';
else
u = 'uint8';
end

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by