Matlab 在该代码的for循环中使用if语句

Matlab 在该代码的for循环中使用if语句,matlab,Matlab,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 ihi

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;
函数[d]=对于μtaup(m,dt,h,q,N,flow,fhigh);
nt=最大(尺寸(m));
nh=最大值(尺寸(h));
M=fft(M,[],1);
D=零(nt,nh);
i=sqrt(-1);
ilow=地板(流量*dt*nt)+1;如果ilowfloor(nt/2)+1;ihigh=楼层(新台币/2)+1;结束
对于if=ilow:ihigh
f=2.*pi*(if-1)/nt/dt;
L=exp(i*f*(h.^N)“*q);
x=M(如果,:);
y=L*x;
D(如果,:)=y';
D(nt+2-if,:)=conj(y)';
结束
D(nt/2+1,:)=0(1,nh);
d=实数(ifft(d,[],1));
返回;

如果将
用作变量名。我很惊讶这并没有引起语法错误:大多数语言都会禁止使用“保留”关键字。如果将
用作变量名,则最好使用不同的名称替换
,以澄清代码并避免混淆。

。我很惊讶这并没有引起语法错误:大多数语言都会禁止使用“保留”关键字。如果用不同的名称替换
,可能是一个好主意,以澄清代码并避免混淆。

就MATLAB而言,此代码实际上没有任何意义,因为它只是一个语法错误
if
是保留关键字,不能创建名为
if
的变量。因此,它只会立即出错,不会运行


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

对于MATLAB而言,此代码实际上没有任何意义,因为它只是一个语法错误
if
是保留关键字,不能创建名为
if
的变量。因此,它只会立即出错,不会运行


您可能应该将变量
if
(虽然不是第8行和第10行中的关键字
if
)的所有引用替换为其他变量名。避免使用
i
,因为您将它用作假想的单位。

我很惊讶代码竟然可以运行<代码>如果
是保留关键字。不管是谁写的这个程序都需要被枪毙(没有冒犯)。@rayreng LOL耶。。另外,
if
用作代码上方的条件,其中,
if
作为变量被覆盖。如果在下面使用它,它就不会运行:D@rayryeng如果
是一个保留关键字,它就不会运行,这正是你所期望的原因。我很惊讶代码竟然会运行<代码>如果
是保留关键字。不管是谁写的这个程序都需要被枪毙(没有冒犯)。@rayreng LOL耶。。另外,
if
用作代码上方的条件,其中,
if
作为变量被覆盖。如果在下面使用它,它就不会运行:D@rayryeng如果
是保留关键字,它不会运行,这正是您所期望的原因。它确实会引发语法错误,因为
如果
是保留关键字。它确实会引发语法错误,因为
如果
是保留关键字。