# Convert base 2 to base 10 using loop

조회 수: 28(최근 30일)
Mary Jeppson 8 Dec 2016
댓글: Mary Jeppson 8 Dec 2016
I've written this loop, but it produces a value of 128 for every number in the mult array instead of going from 128 to 64 to 32 etc. Can anyone tell me why? Thank you for your help!
%Convert base 2 numbers to base 10
base2 = [1 0 1 1 0 0 1];
mult = ones(1,length(base2))
for k = 1:length(base2)
mult(1,k) = mult(1,k)*2^(length(base2-k))
k = k+1
end
base10 = base2*mult'

댓글을 달려면 로그인하십시오.

### 채택된 답변

dbmn 8 Dec 2016
There are two errors in your code
1) Bracket at wrong position (causes your problem to stay at 128 all the time)
mult(1,k) = mult(1,k)*2^(length(base2)-k)
2) Obsolete Increase in loop variable. If you have a for loop, Matlab increases the variable by itself (check the docu). So the following has no effect, since Matlab simply overwrites your changes.
k = k+1

#### 댓글 수: 1

Mary Jeppson 8 Dec 2016
I see! Thank you for your help.
Mary

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

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

Start Hunting!