Question about sprintf function.

1 次查看(过去 30 天)
Here's my syntax:
bm= input ('value');
val = 43 ;
A = sprintf('%d',val);
%if i declare A(1), ans is 4, which is correct.
c=0;
A1 = A(1) .* (bm^(c))
Why is it that if my bm = 8, A1 = 52? its like 4 * 8 = 52. i think my error here is the sprintf function.

采纳的回答

Image Analyst
Image Analyst 2012-9-29
Why not just do
A1 = val;
???? bm^c is just 1, and I'm not sure if you really wanted to take the first digit of 43. If you did, you could just do
A1 = floor(A/10); % As long as A is less than 100.
instead of using sprintf. Is A really some sort of ASCII or hexadecimal number?
  6 个评论
Portgas Ace
Portgas Ace 2012-9-29
why is there 17 18 19 10? it should be up to 16 only right? since up to F only?
Image Analyst
Image Analyst 2012-9-29
Yes, you're right. It does really only go to 16. I didn't have a "clearvars" or "clear all" in there so there was left over stuff in theNumbers from prior test runs. This shows one good reason to use clear (though I know Jan doesn't like it) is to avoid goofs like this. Sorry about that.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Discrete Math 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by