我是MATLAB新手,我遇到了单元格数组中的for循环问题。我有一个52x52单元阵列B
。在每个单元格中,都有一个51x51矩阵。对于B的第一行的每个单元格,我想要计算轨迹,并且我想要矢量中的轨迹元素(并使用样条线使它们平滑)。变量dbmus
和cs
可能每次都被覆盖,SQED
和ddbmus
不可以覆盖。我有下面的代码行,但我不断收到此错误:In an assignment A(I) = B, the number of elements in B and I must be the same.
for循环与单元阵列
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
我该如何解决这个问题?
这意味着您的for循环内的其中一行试图将一个向量放入一个元素中。什么行给出错误?它是for循环中的第一个或最后一个语句。 – jerad
使用'dbstop if error'并检查变量的大小/类型。 – Daniel