我有以下代码:
function [arrR, arrI]=funcmain()
....
for k=1:stage
size=Len/(2^(k-1));
for j=1:(2^(k-1))
arrR((j-1)*(size)+1:j*size)=func(arrR((j-1)*(size)+1:j*size),arrR((j-1)*(size)+1:j*size));
arrI((j-1)*(size)+1:j*size)=func(arrI((j-1)*(size)+1:j*size),arrI((j-1)*(size)+1:j*size));
end;
end;
...
end;
和函数func看起来像这样:
function [arrR,arrI]=func(arrR,arrI)
Len=length(arrR);
for i=1:(Len/(2))
arrR(i)=arrR(i)+arrR(i+Len/(2));
arrR(Len/(2)+i)=arrR(i)-arrR(i+Len/(2));
arrI(i)=arrI(i)+arrI(i+Len/2);
arrI(Len/(2)+i)=arrI(i)-arrI(i+Len/(2));
end;
end
我收到错误:
输入参数太多。
为了清楚函数的作用,我有一个数组,arrR(1:16)
然后我可能要传递arrR(1:4)
,arrR(5:8)
或arrR
的任何部分到func
函数,函数执行它应该做的任何事情并返回并将其插回到原始数组arrR(1:16)
的正确位置。因此,如果我已通过arrR(1:4)
,则应插入func
的相应结果(1:4
arrR(1:16)
)。
今天的数学工作太糟糕了。 :(发生了什么事?
谢谢!