在此代码中使用for语句中的for循环

时间:2015-06-10 01:22:52

标签: matlab

声明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;

2 个答案:

答案 0 :(得分:2)

if用作变量名。我很惊讶这不会引起语法错误:大多数语言都禁止使用&#34;保留&#34;关键字。也许最好用不同的名称替换if以澄清您的代码并避免混淆。

答案 1 :(得分:2)

就MATLAB而言,这段代码并不具有任何意义,因为它只是一种语法错误。 if是保留关键字,您无法创建名为if的变量。因此,它只是立即出错并且不会运行。

您应该使用其他变量名替换所有出现的变量if(尽管不是第8行和第10行中的关键字if)。避免使用i,因为您将其用作虚构单位。