有这样的代码:
U = sin(0.3*(1:500));
n = length(U);
for t = 1:length(U)
Q = U(t+1:n);
end
向量 U 的大小随每个i变化。我可以在循环中对每个向量执行操作,例如:
for t = 1:length(U)
Q = U(t+1:n);
S (t) = sum(Q);
end
但是,我需要将每个向量写入矩阵或将其提取以进行进一步操作。如果将“额外”元素写入矩阵,则可以添加零,例如
[1 0 0 0 0;
1 2 0 0 0;
1 2 3 0 0 ;
. . . . ]
谁能告诉如何提取或写入矩阵。提前致谢!
你可以把它写成这样的矩阵:
字符串
M(t,1:length(Q)) = Q;意味着必须将字符串写入t从第一个到的行和列。你可以用同样的方法提取它:length(Q)Q其中
dl是要提取的字符串的长度。如果您需要提取整行,那么您可以这样做:当然,最好通过将不同大小的向量存储在元胞数组中来处理它们。但是由于这不适合您,因此您可以用零填充矩阵,只是根据代码判断,您应该得到一个上三角矩阵,而不是下三角矩阵。
顺便说一句,您为什么决定元胞数组占用更多内存?我在这里检查过,单元阵列占用的空间比生成的上三角矩阵要少。因此,我给出了另一个包含单元格数组的代码:
然后,您可以运行
whos Q和命令whos QC,查看这些数组占用多少字节,并确保元胞数组占用更少的内存。