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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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数组的一个元素,下标就是当前循环数。
参考技术A 错在维数不一致,看看,f的大小是1x10,那么w的维数也是1x10,而a,b,c的大小都是2x2,那么你的d
=
(a*b*c).*w;
你是想用一个2x2的矩阵(a*b*c)去点乘一个1x10的向量么?这个通不过的。
参考技术B 你的表示方法不太对
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本回答被提问者采纳
参考技术C for i=1:10
a(i)=1+i
b(i)=i+2
ci,1=[1 a(i) 1;1 b(i) 1]%采用cell数组存储为<10x1 cell>
end

怎样用matlab计算一个矩阵和大量矩阵分别相乘

参考技术A 方法一,可以使用for循环;
方法二,可以使用cellfun函数.将大量矩阵保存成cell数组.
示例:
a=rand(3,2); %a某个矩阵
B=rand(2,2),rand(2,3),rand(2,4),rand(2,5),rand(2,6); %B大量矩阵组成的cell数组
C=cellfun(@(x)a*x,B,'UniformOutput',false); %分别将矩阵a与B中每个矩阵相乘.
%C为结果,也是cell数组
由结果可知:
C1 = a*B1
C2 = a*B2
C3 = a*B3
C4 = a*B4
C5 = a*B5

以上是关于MATLAB中如何用for 循环将结果代入矩阵中?的主要内容,如果未能解决你的问题,请参考以下文章

matlab中如何用qr函数求特征值和特征向量,矩阵是mxn

MFC中如何用for循环将一组值在编辑框中显示?

python中如何用for循环输出一个列表

在matlab中如何用mat数据作图

在JS中如何用for循环数字做出一个V字形

请问php中如何用for循环遍历出关联数组,不要用foreach,用for循环哦