MATLAB中如何用for 循环将结果代入矩阵中?

具体程序如下:
for i=1:10
a(i)=1+i;
b(i)=i+2;
c(i)=[1 a(i) 1;1 b(i) 1];
end
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
a,b值是变化值,想求c的一些列矩阵,希望那问高手指点一下?

推荐的做法是:
1. 如果每次循环产生等长的行向量,就把每次产生的行向量作为矩阵的一行,行标就是当前循环数;
2. 如果每次循环产生的向量不等长,就把每次产生的行向量作为cell数组的一个元素,下标就是当前循环数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-05
错在维数不一致,看看,f的大小是1x10,那么w的维数也是1x10,而a,b,c的大小都是2x2,那么你的d
=
(a*b*c).*w;
你是想用一个2x2的矩阵(a*b*c)去点乘一个1x10的向量么?这个通不过的。
第2个回答  2010-05-17
你的表示方法不太对
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本回答被提问者采纳
第3个回答  2010-05-17
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
相似回答