将数组传递给matlab函数

时间:2014-04-16 23:07:14

标签: arrays matlab function

我有以下代码:

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))。

今天的数学工作太糟糕了。 :(发生了什么事?

谢谢!

0 个答案:

没有答案