problem using num2str and bin2dec in size
3 views (last 30 days)
Show older comments
having an array of 32*32 when using num2str i get a char array of 32*94 why? i cannot use bin2dec on it
data = uint32(randi(2^31,[32,1]));
m = de2bi((data),32);
groups = num2str(m');
the array groups will be of type char 32*94 i cannot convert it to decimal :S
- - - Updated - - -
tic
data = uint32(randi(2^31,[32,1]));
m = de2bi((data),32);
groups = (m');
power2=[1,32];
for i=1:32
power2(i)=2^(i-1);
end
power2=uint32(power2);
decnum=[1,32];
for i=1:32
decnum(i)=(sum(power2.*groups(i,:)));
end
decnum=uint32(decnum);
toc
this is the updated code but it is somekind of slow if i want to do it on 500 000number any suggestions plz?
0 Comments
Accepted Answer
Iman Ansari
on 5 Apr 2013
Hi
groups(:,1:3:end) %makeing result 32*32 again
Try this(Your updated code):
data = uint32(randi(2^31,[32,1]));
m = de2bi((data),32);
groups = num2str(m');
a=groups(:,end:-3:1);
b=bin2dec(a);
c=uint32(b);
0 Comments
More Answers (3)
ghattas akkad
on 5 Apr 2013
1 Comment
Iman Ansari
on 5 Apr 2013
See this:
m = de2bi((4),8)
groups = num2str(m)
groups2 = groups(1,1:3:end)
the groups has two space between its numbers.
ghattas akkad
on 5 Apr 2013
5 Comments
Iman Ansari
on 5 Apr 2013
No:
clear
%%%%%mine
data = uint32(randi(2^31,[32,1]));
m = de2bi((data),32);
groups1 = num2str(m');
a=groups1(:,end:-3:1);
b=bin2dec(a);
c=uint32(b);
%%%%%%yours
groups = (m');
power2=[1,32];
for i=1:32
power2(i)=2^(i-1);
end
power2=uint32(power2);
decnum=[1,32];
for i=1:32
decnum(i)=(sum(power2.*groups(i,:)));
end
decnum=uint32(decnum);
mineVsyours=[c decnum']
ghattas akkad
on 5 Apr 2013
3 Comments
Iman Ansari
on 5 Apr 2013
500000 is very big but for lower number like 1000:
clear
data = uint32(randi(2^31,[1000,1]));
m = de2bi((data),32);
groups1 = num2str(m');
a=groups1(:,end:-3:1);
b=0;
for i=1:52:size(a,2)
b=b+bin2dec(a(:,i:min(i+51,end))).*2^(i-1);
end
But I think you shouldn't use c=uint32(b) after this.
See Also
Categories
Find more on Characters and Strings in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!