给出以下matlab代码:
A = reshape (1:9 ,[3 3]);
f = @(x) x^2;
f(A)
输出是:
A =
1 4 7
2 5 8
3 6 9
ans =
30 66 102
36 81 126
42 96 150
你能告诉我这个输出是如何计算的吗?如何调用匿名函数?
我想在python中编写相同的程序。
python中是否有任何兼容函数可以让我实现它?
答案 0 :(得分:2)
将矩阵作为输入的匿名函数的行为与从命令行执行时通常会执行的操作一样。它没什么特别的。
问题是您正在使用^
matrix power (mpower
)并且我相信您正在寻找element-wise power (power
) which is .^
,在您的情况下,它会单独对每个元素进行平方。< / p>
f = @(x)x.^2;
B = f(A);
如果您想在Python中执行相同操作,则可以使用numpy
import numpy as np
A = np.arange(1, 10).reshape(3, 3).T
B = np.power(A, 2)
如果你想要掌握这项行动,最好的做法就是将其纳入其自身的职能
def f(x):
return np.power(x, 2)
B = f(A)
如果你命名为lambda
(匿名)函数(this isn't recommended),你可以这样做:
f = lambda x: np.power(x, 2)
B = f(A)