プログラムにいくつかの既存のコードを適用しましたが、原因がわからないエラーに遭遇しました。私の目標は、データをより小さなサブサンプルに分割し、各サブサンプルで計算を行うことです。サブサンプル サイズがどのように変化するかを判断するために、プログラムは N の約数を見つけて配列 OptN に格納します。
dmin = 2;
% Find OptN such that it has the largest number of
% divisors among all natural numbers in the interval [0.99*N,N]
N = length(x);
N0 = floor(0.99*N);
dv = zeros(N-N0+1,1);
for i = N0:N,
dv(i-N0+1) = length(divisors(i,dmin));
end
OptN = N0 + find(max(dv)==dv) - 1;
% Use the first OptN values of x for further analysis
x = x(1:OptN);
% Find the divisors >= dmin for OptN
d = divisors(OptN,dmin);
function d = divisors(n,n0)
% Find all divisors of the natural number N greater or equal to N0
i = n0:floor(n/2);
d = find((n./i)==floor(n./i))' + n0 - 1; % Problem line
関数除数で問題が発生します。「エラーの使用./マトリックスの次元は一致する必要があります。」ただし、これは長さ 60 の入力データで機能しましたが、長さ 1058 のデータを試すと、上記のエラーが発生します。