如何将matlab拟合函数应用于矩阵的每一行

时间:2011-04-06 19:52:27

标签: matlab matrix curve-fitting

我需要在矩阵的每个连续行中使用傅立叶函数,以避免使用for循环。我试图使用一个单元格数组,但不知道如何使用它。 我的节目是

I=imread('test.tif','tif');  
I=double(I);  
nat=num2cell(I,1);  
wy_I=cellfun(@size,nat, 'UniformOutput', false);  
we_I=cellfun(@(x)1:x(1), wy_I, 'UniformOutput', false);  
wyn=cellfun(@(x,y)fit(x',y,'fourier1'), we_I, nat);   

它给出??? Error using ==> cellfun cfit type is not currently implemented.可能单元格数组不是解决此问题的方法。 如何解决这个问题呢? 感谢

更新

wyn=cellfun(@(x,y)fit(x',y,'fourier1'), we_I, nat, 'UniformOutput',false);  

没有错误,但是wyn只有空单元格 我测试了一行

j=cell2mat(we_I(1,1))  
k=cell2mat(nat(1,1))  
z=fit(j',k,'fourier1')  

z包含模型的良好值 我在cellfun中的语法有问题,但不知道是什么

1 个答案:

答案 0 :(得分:1)

FIT函数在此示例中返回类型为cfit的对象。该错误似乎表明CELLFUN无法将这些对象收集到类型为cfit的数组中作为输出返回。我会尝试通过将cfit添加到最后一行来返回'UniformOutput',false个对象的单元格数组