声明for if=ilow:ihigh
在此计划中意味着什么?
function [d]=for_taup(m,dt,h,q,N,flow,fhigh);
nt= max(size(m));
nh = max(size(h));
M = fft(m,[],1);
D = zeros(nt,nh);
i = sqrt(-1);
ilow = floor(flow*dt*nt)+1; if ilow<1; ilow=1;end;
ihigh = floor(fhigh*dt*nt)+1;
if ihigh>floor(nt/2)+1; ihigh=floor(nt/2)+1;end
for if=ilow:ihigh
f = 2.*pi*(if-1)/nt/dt;
L = exp(i*f*(h.^N)’*q);
x = M(if,:)’;
y = L * x;
D(if,:) = y’;
D(nt+2-if,:) = conj(y)’;
end
D(nt/2+1,:) = zeros(1,nh);
d = real(ifft(D,[],1));
return;
答案 0 :(得分:2)
if
用作变量名。我很惊讶这不会引起语法错误:大多数语言都禁止使用&#34;保留&#34;关键字。也许最好用不同的名称替换if
以澄清您的代码并避免混淆。
答案 1 :(得分:2)
就MATLAB而言,这段代码并不具有任何意义,因为它只是一种语法错误。 if
是保留关键字,您无法创建名为if
的变量。因此,它只是立即出错并且不会运行。
您应该使用其他变量名替换所有出现的变量if
(尽管不是第8行和第10行中的关键字if
)。避免使用i
,因为您将其用作虚构单位。