problem using num2str and bin2dec in size
이전 댓글 표시
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?
채택된 답변
추가 답변 (3개)
ghattas akkad
2013년 4월 5일
0 개 추천
댓글 수: 1
Iman Ansari
2013년 4월 5일
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
2013년 4월 5일
0 개 추천
댓글 수: 5
ghattas akkad
2013년 4월 5일
ghattas akkad
2013년 4월 5일
ghattas akkad
2013년 4월 5일
Iman Ansari
2013년 4월 5일
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
2013년 4월 5일
ghattas akkad
2013년 4월 5일
0 개 추천
댓글 수: 3
Iman Ansari
2013년 4월 5일
bin2dec support string with at max 52 width. You want to convert to decimal a binary number with 500000 bits width, then with uint32 convert it back to 32 bits number?
Please explain what you want to do with this code.
ghattas akkad
2013년 4월 5일
Iman Ansari
2013년 4월 5일
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.
카테고리
도움말 센터 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!