如何在MATLAB(变量数组)中计算GCD?

时间:2016-09-10 03:48:19

标签: arrays matlab greatest-common-divisor

我在计算GCD时遇到问题。通常MATLAB中的GCD使用两个变量(例如:a = 19,b = 88和gcd(a,b))。但我有一个变量数组K = [1 1 1 1 2 1 3 2],对于这个K,我想计算GCD。
如何计算K的最大公约数?

2 个答案:

答案 0 :(得分:1)

因为gcd(gcd(a,b),c) is the same as gcd(a,b,c)你可以迭代K并获得数组的gcd。

g = K(1)
for i=2:numel(K)
    g = gcd(g,K(i))
end
fprintf('The gcd is %i\n', g)

答案 1 :(得分:0)

将数组元素指定为符号向量的元素。

为您的问题 -

K = sym([1, 1, 1, 1, 2, 1, 3, 2])
gcd(K)