如何用Python循环生成103×55维度的c4矩阵?
解决Python生成指定维度矩阵的问题
原MATLAB代码的逻辑是创建一个m×n(103×55)的矩阵,矩阵中每个元素的值都是sum(log(f))的计算结果(该值与循环变量i、j无关)。以下是对应的Python实现方案:
步骤1:计算固定值
先算出所有元素共用的固定值:
import numpy as np n = 55 m = 103 # 假设f是已定义的1×441 numpy数组,例如 f = np.random.rand(1, 441) fixed_value = np.sum(np.log(f))
方式1:numpy向量化生成(推荐,高效)
利用numpy的full函数直接创建指定维度的矩阵,所有元素填充为固定值:
c4 = np.full((m, n), fixed_value)
方式2:模拟MATLAB双层循环写法
如果需要贴合原MATLAB的循环逻辑,先初始化矩阵再循环赋值:
# 初始化m行n列的零矩阵 c4 = np.zeros((m, n)) for j in range(n): for i in range(m): c4[i, j] = fixed_value
原代码问题说明
你当前的代码c4 = np.sum(np.log(f))仅计算了一个标量值,既没有创建指定维度的矩阵,也没有通过循环为矩阵元素赋值,因此只会输出单个值。
内容的提问来源于stack exchange,提问作者maya
相关产品推荐
相关产品推荐

