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

Learn moreOpportunities for recent engineering grads.

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

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

*No products are associated with this question.*

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{:})];

Show 2 older comments

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.

## 0 Comments