标量相乘矩阵

时间:2018-11-21 20:23:01

标签: python

我需要创建一个将标量与矩阵相乘而不使用numpy的函数。这里的问题是该函数不会返回矩阵。(因此,下面的矩阵需要返回[[2,4],[6,9.0],[10,84]]

def mul_mat_by_scalar(mat, alpha):

           # Write the rest of the code for question 5 below here.

    mat_new = []

    for j in mat:

        for i in j:

            a = (i* alpha)

            mat_new.append(a)

            continue

    return mat_new  

print mul_mat_by_scalar([[1,2], [3,4.5], [5,42]], 2)

1 个答案:

答案 0 :(得分:0)

我宁愿使用这样的列表理解:

def mul_mat_by_scalar(mat, alpha):
    return [[alpha*j for j in i] for i in mat]

它只是将mat中的每个元素乘以alpha并返回新矩阵。

对于您的工作方式,您必须附加列表,而不仅仅是a。您将这样写:

def mul_mat_by_scalar(mat, alpha):

           # Write the rest of the code for question 5 below here.

    mat_new = []
    for j in mat:     
        sub_mat=[]
        for i in j:
            a = i* alpha
            sub_mat.append(a)
        mat_new.append(sub_mat)

    return mat_new

但这很丑而不是pythonic