【发布时间】:2023-02-25 06:52:51
【问题描述】:
我有 571 个矩阵 (625x625)。所有矩阵都是对称的,名称为 z1,z2,...z571; 我需要将每个矩阵的非重复元素放在一个行向量中。例如通过将非 行向量中 z1 的重复元素我创建行向量 c1。从 z2 制作 c2 ,... 这是我从 z1 制作 c1 的代码:
c1=zeros(1,195625);
z1=zeros(625);
for i=1:625
for j=1:625
if (i<=j)
z1(i,j)=c1(1,n);
n=n+1;
end
end
end
第一个问题是运行时间很长。有什么办法可以提高速度吗? 第二个问题:如果我想从 z1 生成 c1,从 z2 生成 c2,...从 z571 生成 c571,并生成一个名为 X 的矩阵,其中的行为 c1,c2,...,c571,我应该怎么做? 感谢您的帮助
【问题讨论】:
-
对于第二部分:您当前拥有的是动态变量名,它是bad idea。最好将所有这些矩阵打包到一个元胞数组中,或者更好地打包到一个 3D 数组(大小为 625x625x571 )中。这使得循环或矢量化更容易