Matlab 创建';n';循环中的矩阵

Matlab 创建';n';循环中的矩阵,matlab,Matlab,可能重复: 大家好,作为标题,我想知道是否有人知道如何在Matlab中创建循环中的“n”矩阵 像这样: for (i=1:n) p_i = P(i, :); q_i = Q(i, :); A_i = [p_i, p_i', q_i]; end 当然,Matlab在矩阵A_i上重写了n次,但我希望有n个“i”索引的矩阵 提前谢谢你,祝你过得愉快 您可以将所有内容连接到一个3D阵列中: A_i = zeros(D1,D2,n); % D1 and D2 are the dimensions

可能重复:

大家好,作为标题,我想知道是否有人知道如何在Matlab中创建循环中的“n”矩阵

像这样:

for (i=1:n)

p_i = P(i, :);
q_i = Q(i, :);

A_i = [p_i, p_i', q_i];
end
当然,Matlab在矩阵A_i上重写了n次,但我希望有n个“i”索引的矩阵


提前谢谢你,祝你过得愉快

您可以将所有内容连接到一个3D阵列中:

A_i = zeros(D1,D2,n);  % D1 and D2 are the dimensions of the 2D arrays
for i = 1:n
    p_i = P(i,:);
    q_i = Q(i,:);
    A_i(:,:,i) = [p_i, p_i', q_i];
end
如果您真正想要
n
不同的矩阵,那么您需要一个。您的代码将类似于:

A_i = cell(1,n);
for i = 1:n
    p_i = P(i,:);
    q_i = Q(i,:);
    A_i{i} = [p_i, p_i', q_i];
end

注意,你应该仔细考虑哪一个最适合你的需要。单元数组的唯一真正优点是,它允许每个元素都是不同的数据类型或大小不同的数组。与二维数组的单元数组相比,三维数组有几个优点(您可以对其求和、重塑、从中分割三维子块等)。

您可以将所有内容连接到三维数组中:

A_i = zeros(D1,D2,n);  % D1 and D2 are the dimensions of the 2D arrays
for i = 1:n
    p_i = P(i,:);
    q_i = Q(i,:);
    A_i(:,:,i) = [p_i, p_i', q_i];
end
如果您真正想要
n
不同的矩阵,那么您需要一个。您的代码将类似于:

A_i = cell(1,n);
for i = 1:n
    p_i = P(i,:);
    q_i = Q(i,:);
    A_i{i} = [p_i, p_i', q_i];
end
注意,你应该仔细考虑哪一个最适合你的需要。单元数组的唯一真正优点是,它允许每个元素都是不同的数据类型或大小不同的数组。与二维数组的单元数组相比,三维数组有几个优点(您可以对其求和、重塑、从中切片三维子块等)。

重复项:,,重复项:,