我在Matlab中有一个M[12x2232]
矩阵,还有三个矩阵a[2232]
,b[2232]
,c[2232]
。我需要得到一个结果矩阵ResultMatrix[26784x5]
,其中行26784的总数为2232 * 12,如何在下面的嵌套循环中看到:
rowi = 1;
for ii = 1:2232
for jj = 1:12
row = { a(ii) M(ii,jj) b(ii) c(ii) jj*5 };
ResultMatrix(counter, :) = row;
rowi=rowi+1;
end
end
但是执行时间太长(20分钟)。有没有一种方法可以更快地生成矩阵?
答案 0 :(得分:0)
我对描述不甚了解,但是如果您的代码有效,则可以这样做:
new_a = repmat(a(:).',12,1);
new_b = repmat(b(:).',12,1);
new_c = repmat(c(:).',12,1);
new_M = M.';
ResultMatrix = [new_a(:) new_M(:) new_b(:) new_C(:) 5*repmat([1:12].',2232,1)];