如何基于输入的矩阵A生成对应尺寸的全1向量
匹配矩阵维度的全1向量生成方案
核心逻辑
生成前先明确矩阵乘法的方向,匹配对应维度即可:
- 全1向量左乘矩阵A(运算格式为
全1向量 @ A):向量长度需等于矩阵A的行数 - 矩阵A右乘全1向量(运算格式为
A @ 全1向量):向量长度需等于矩阵A的列数
你当前使用的是n×n方阵,行、列数完全相等,取任意维度的数值生成都能匹配需求。
常见科学计算环境的实现代码
Python(Numpy 场景)
通过.shape属性获取矩阵维度,调用np.ones生成:
import numpy as np # 右乘场景适配 ones_vec = np.ones(A.shape[1]) # 左乘场景适配 ones_vec = np.ones(A.shape[0])
MATLAB 场景
通过size方法获取矩阵维度,调用ones生成:
% 右乘场景适配(生成列向量) ones_vec = ones(size(A,2), 1); % 左乘场景适配(生成行向量) ones_vec = ones(1, size(A,1));
R 语言场景
通过ncol/nrow获取矩阵维度,调用rep生成:
# 右乘场景适配 ones_vec <- rep(1, ncol(A)) # 左乘场景适配 ones_vec <- rep(1, nrow(A))
无依赖通用实现逻辑
如果不借助第三方计算库,直接手动实现也非常简单:
- 读取输入矩阵A的行数m、列数n
- 根据乘法需求,初始化一个长度为m或n的数组
- 遍历数组将所有元素赋值为1即可
内容的提问来源于stack exchange,提问作者Jack Karrde
相关产品推荐
相关产品推荐

