for cell with cell array

时间:2014-01-16 19:49:53

标签: arrays matlab for-loop cell-array

我是MATLAB的新手,我遇到了一个单元阵列中for循环的问题。我有一个52x52的单元阵列B。在每个单元格中,都有一个51x51矩阵。对于B的第一行的每个单元格,我想计算轨迹,我想要一个矢量中的trace元素(并用样条曲线平滑它们)。变量dbmuscs可能每次都被覆盖,SQEDddbmus不会被覆盖。我有以下代码行,但我一直收到此错误:In an assignment A(I) = B, the number of elements in B and I must be the same.

X = 1:51;                 
xx = linspace(1,51,250);  
SQED = zeros(1,52);
dbmus = zeros(1,52);
ddbmus = zeros(1,52);
for i = 1:52
    SQED(i) = sum(diag(B{1,i}));
    dbmus = transpose(diag(B{1,i}));
    cs = spline(X,[dbmus(1),dbmus,dbmus(end)]);      
    ddbmus(i) = ppval(cs,xx);                        
end

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

ppval评估xx中所有点的样条曲线。这会产生一个向量。然后尝试将矢量存储在ddbmus(i)中,这是一个标量。

您可能希望将整个矢量存储在矩阵的行(或列)中。如果是这样的话:

ddbmus = zeros(52, 250);
for i = 1:52
    % ... existing code
    ddbmus(i, :) = ppval(cs,xx);
end