Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: doubt in matlab version in dec2bin() command
Replies: 4   Last Post: Jul 20, 2012 2:48 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
PANDIAN` NITHYANANDAM

Posts: 19
Registered: 6/23/10
doubt in matlab version in dec2bin() command
Posted: Jul 20, 2012 6:11 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply


hai matlab experts , this is a line of code in my matlab program

reqBinData = dec2bin(newImg2);


when i am run this snippet in matlab 7.6.0 R2008a , it does not give any error.


but when i run it in matlab 7.8.0.347 R2009a it gives the following error:

??? Operands to the || and && operators must be convertible to logical scalar values.

Error in ==> dec2bin at 31
if any(d < 0) || any(~isfinite(d))
reqBinData = dec2bin(newImg2);

Error in ==> sampic2abb at 122


what is the reason; newImg2 is a double variable; even i type casted that in to uint8 data type; but still i cannot fiix this problem.

thanks in advance.
------------------------------------

i have attached the entire code for the reference:
------------------------------------------------------------------------------


clear;
clc;
a = imread('file.bmp'); %Reading Input File
% stochastic resonance begins here
% D=size(a);
% M=D(1,1);
% N=D(1,2);
% a=double(a);
%
% %sigma=1;
% a=quant(a,4);
% a=a+randn(M,N);
% a=uint8(a);
% stochastic resonace ends here
b = bitand(a,240); %Extracting First 4 Bits from the MSB
% The following code will push 7,6,5,4th bit to right side; since i am not okay with rotation operatoin i did like this
for i = 1:size(a,1)
for j = 1:size(a,2)
if(b(i,j)== 240)
b1(i,j)=15;
elseif(b(i,j)== 224)
b1(i,j)=14;
elseif(b(i,j)== 208)
b1(i,j)=13;
elseif(b(i,j)== 192)
b1(i,j)=12;
elseif(b(i,j)== 176)
b1(i,j)=11;
elseif(b(i,j)== 160)
b1(i,j)=10;
elseif(b(i,j)== 144)
b1(i,j)=9;
elseif(b(i,j)== 128)
b1(i,j)=8;
elseif(b(i,j)== 112)
b1(i,j)=7;
elseif(b(i,j)== 96)
b1(i,j)=6;
elseif(b(i,j)== 80)
b1(i,j)=5;
elseif(b(i,j)== 64)
b1(i,j)=4;
elseif(b(i,j)== 48)
b1(i,j)=3;
elseif(b(i,j)== 32)
b1(i,j)=2;
elseif(b(i,j)== 16)
b1(i,j)=1;
elseif(b(i,j)== 0)
b1(i,j)=0;
end
end
end

% This is gray code coversion for 7,6,5,4th bit; since i am not okay with gray code operation i did like thi
% i am aware that both these operatoins inbuilt functions are available, but still i used
% logic for that
for i = 1:size(a,1)
for j = 1:size(a,2)
if(b1(i,j)== 15)
b2(i,j)=8;
elseif(b1(i,j)== 14)
b2(i,j)=9;
elseif(b1(i,j)== 13)
b2(i,j)=11;
elseif(b1(i,j)== 12)
b2(i,j)=10;
elseif(b1(i,j)== 11)
b2(i,j)=14;
elseif(b1(i,j)== 10)
b2(i,j)=15;
elseif(b1(i,j)== 9)
b2(i,j)=13;
elseif(b1(i,j)== 8)
b2(i,j)=12;
elseif(b1(i,j)== 7)
b2(i,j)=4;
elseif(b1(i,j)== 6)
b2(i,j)=5;
elseif(b1(i,j)== 5)
b2(i,j)=7;
elseif(b1(i,j)== 4)
b2(i,j)=6;
elseif(b1(i,j)== 3)
b2(i,j)=2;
elseif(b1(i,j)== 2)
b2(i,j)=3;
elseif(b1(i,j)== 1)
b2(i,j)=1;
elseif(b1(i,j)== 0)
b2(i,j)=0;
end
end
end


c = bitand(a,15); %Extracting Last 4 Bits from the LSB
n = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
cntval = n;
disp('Size of the Image: ')
disp(size(a));
for i = 1:size(a,1)
for j = 1:size(a,2)
n(c(i,j)+1) = n(c(i,j)+1) + 1;
end
end
maxn = max(n);
disp('0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t10\t11\t12\t13\t14\15');
disp(n);
disp('Total Value of the Pixels from 0 to 7');
disp(sum(n(:)));
for i = 1:16
if n(i) ~= maxn
n(i) = 0;
end
end
indn = find(n);
indn = indn - 1; %Index Stores the most frequently occuring value in the last 4 bits
disp('Maximum Value Index');
disp(indn);
newImg2 = b2;
reqBinData = dec2bin(newImg2);
% reqBinData1 = dec2bin(b);
reqBinData = reqBinData';

singlArr = [reqBinData(4,:),reqBinData(3,:),reqBinData(2,:),reqBinData(1,:)];

dlmwrite('1.txt',singlArr, 'delimiter',' ','newline','pc');
reqMetrics = [size(a), indn]; %Metrics Required to Decode the file
disp(reqMetrics);
dlmwrite('metrics.txt',reqMetrics, 'delimiter',' ','newline','pc');



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.