Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

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

Malik

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';
Andrei Bobrov
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

Vineet

Contact us