推荐的做法是:
1. 如果每次循环产生等长的行向量,就把每次产生的行向量作为矩阵的一行,行标就是当前循环数;
2. 如果每次循环产生的向量不等长,就把每次产生的行向量作为cell数组的一个元素,下标就是当前循环数。
错在维数不一致,看看,f的大小是1x10,那么w的维数也是1x10,而a,b,c的大小都是2x2,那么你的d
=
(a*b*c).*w;
你是想用一个2x2的矩阵(a*b*c)去点乘一个1x10的向量么?这个通不过的。
你的表示方法不太对
for i=1:10
a(i)=1+i;
b(i)=i+2;
c(:,:,i)=[1 a(i) 1;1 b(i) 1];
end
结果c为一系列矩阵
c(:,:,1) =
1 2 1
1 3 1
c(:,:,2) =
1 3 1
1 4 1
c(:,:,3) =
1 4 1
1 5 1
c(:,:,4) =
1 5 1
1 6 1
c(:,:,5) =
1 6 1
1 7 1
c(:,:,6) =
1 7 1
1 8 1
c(:,:,7) =
1 8 1
1 9 1
c(:,:,8) =
1 9 1
1 10 1
c(:,:,9) =
1 10 1
1 11 1
c(:,:,10) =
1 11 1
1 12 1
for i=1:10
a(i)=1+i
b(i)=i+2
c{i,1}=[1 a(i) 1;1 b(i) 1]%采用cell数组存储为<10x1 cell>
end