出于多种原因,我尝试避免或减少周期数,通常是因为它们很慢。请告诉我,是否有可能在没有循环的情况下获得以下矩阵?
clear,clc;
tic
n = 1:100;
Y = sin(n);
N = length(Y);
eps = std(Y);N = length(Y);
m = 3;
q=1.3;
tic
for s = 1:N-m-1
for t1 = s+1:N-m
for j = 1:m
C2(t1,j) = abs(Y(s+(j-1))-Y(t1+(j-1)))< eps;
end
tempC(s) = (sum(prod(C2,2)).^(q-1));
end
end
toc
C = sum(tempC)^(1/(q-1));
这段代码计算如图1所示的表达式
,代码运行正常(结果与MathCad相同),但是以后随着数据量的增加,需要的时间会比较长。尝试使用函数、meshgrid、repmat ......但都是徒劳的。
函数 I(a,b,e) - Heaviside 函数我将不胜感激。真诚的,V.
例如,让我们删除最内层的循环,为此我们将 j 替换为循环中的范围: