You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB中如何无循环将n元素向量生成每行同原向量的n×n矩阵

MATLAB无循环构造行重复n阶矩阵实现方案

需求说明

给定长度为n的向量A,不使用任何循环语句生成n×n矩阵B,要求B的每一行元素与向量A完全一致。例如当A = [1 2 3 4 5 6]时,输出6×6矩阵,所有行均为[1 2 3 4 5 6]。

可用实现方法

以下三种方法均无需编写循环,全部基于MATLAB内置能力实现,运行效率高:

  • 方法1:使用数组复制函数repmat
    repmat是MATLAB原生的数组重复拼接函数,直接指定行、列复制次数即可得到结果,是最直观的实现方式:
    n = length(A);
    B = repmat(A, n, 1); % 将A按「纵向复制n次、横向复制1次」的规则拼接
    
  • 方法2:通过矩阵乘法实现
    利用线性代数运算性质:n维全1列向量与1×n行向量A相乘,得到的n×n矩阵每一行都与原行向量A完全一致。该方法底层经过矩阵运算优化,大维度场景下运行速度极快:
    n = length(A);
    B = ones(n, 1) * A;
    
  • 方法3:利用下标索引复制实现
    MATLAB支持传入重复下标实现数组维度的自动扩展,构造全1的索引数组提取A的第一行(行向量A仅存在1行),即可自动将该行重复n次生成目标矩阵:
    n = length(A);
    B = A(ones(n, 1), :);
    

效果验证

以上述示例向量A = [1 2 3 4 5 6]为例,任意一种方法运行后得到的矩阵B均为:

B =
     1     2     3     4     5     6
     1     2     3     4     5     6
     1     2     3     4     5     6
     1     2     3     4     5     6
     1     2     3     4     5     6
     1     2     3     4     5     6

注意:如果输入A是列向量,只需先将A转置为行向量(即A = A.')再调用上述方法即可。

内容的提问来源于stack exchange,提问作者NISHA MB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 00:54:33