0

对于下面的 b 数组,我不断收到此错误

A = one(numTrials, 2*numDOFs);
b = 个(numTrials, 1);

k = 2;
for i = 2:numSubjects
    for j = 1:numTrials
        A(k,:) = cat(2,subject(i).trial(j).torque_integral, subject(i).trial(j).work_integral); 
        b(k) = [subject(i).trial(j).E - subject(i).trial(j).B - sum(subject(i).trial(j).work_integral)];        
        k = k + 1;
    end
end

我测试了创建 b 数组的每个组件(subject(i).trial(j).E 等),它们都是标量值。所以我应该能够添加/减去它们,然后将它们分配给预分配的 b 数组中的索引。一个简单的虚拟版本如下所示:

c = 个(4,1)

c =

 1
 1
 1
 1

c(3) = 3

c =

 1
 1
 3
 1

那么我在这里错过了什么?谢谢!

4

1 回答 1

0

您可能应该打印出分配中每个元素的大小,您的问题将自行解决;

size(cat(2,subject(i).trial(j).torque_integral, subject(i).trial(j).work_integral))
size([subject(i).trial(j).E - subject(i).trial(j).B - sum(subject(i).trial(j).work_integral)])

注意 - 我;在上面省略了尾随,这会导致值输出到控制台;此外,您对 B 的分配也有[]它,就好像您正在尝试创建一个向量一样。如果它真的是一个单一的元素,那就没有必要了......

于 2013-03-12T02:14:50.107 回答