MATLAB Answers

Malik

how to convert numstrng to integers and take lcm

Asked by Malik
on 24 Apr 2013

consider out 2 =

    1     0     0     1     0     1
    1     1     1     1     0     1
    1     1     0     1     1     1

if i need to take the lcm of the binary rows that have in out2 i am doing this:

converting each row to numstrng using: out3 = num2str(out2(:))

now i need to pick 1 to m rows of this string (m = 5 here) and convert it to decimal but it wont work: out 4 = bin2dec(out3(1:1:5))

then i need to take the lcm of out4

      x = lcm(out4) 

% but the lcm function wont work for more than two numbers which is pretty challenging here, how to work through this

  0 Comments

Products

No products are associated with this question.

2 Answers

Answer by Andrei Bobrov
on 24 Apr 2013
 Accepted answer

Try this:

out2 = [
    1     0     0     1     0     1
    1     1     1     1     0     1
    1     1     0     1     1     1];
out4 = out2*2.^(size(out2,2)-1:-1:0)';
out_pair = nchoosek(out4,2);
out5 = num2cell(out_pair,1);
out_last = [out_pair, lcm(out5{:})];

  5 Comments

Malik
on 26 Apr 2013

how can i reconvert this out_last to binary form again?

Malik
on 26 Apr 2013

such that out_last comes in binary form in a row matrix?

Andrei Bobrov
on 26 Apr 2013
out = dec2bin(out_last(:,end)) - '0';

Answer by Vineet
on 24 Apr 2013

You can put all the numbers in an array and take LCM of 2 numbers at a time.

Say, you begin with the LCM of the first and the second number. Whatever LCM you get now, treat it as a new number and calculate LCM of this number and the next number in the list.

Run a loop for the same.

  1 Comment

Malik
on 24 Apr 2013

okay let me try this. Thanks


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today