在GNU Octave版本3.4.3中,我在应用自定义函数来操作矩阵中的每个项目/元素时遇到了问题。
我有一个(2,3)矩阵,如下所示:
mymatrix = [1,2,3;4,5,6];
mymatrix
1 2 3
4 5 6我希望使用矩阵的每个元素作为输入,并对其运行一个自定义函数,并让该函数的输出逐项替换mymatrix的内容。
发布于 2012-07-17 21:55:47
更简单的方法,正如Nasser指出的那样,下面的八度代码:
f=@(x) x+5;
A = [1, 0, -1; 3, 4, 5];
result = f(A)
result将(x+5)应用于传入的每个元素,它将打印:
result =
6 5 4
8 9 10发布于 2014-10-17 07:42:25
arrayfun可以很好地做到这一点:
arrayfun(@(x) 1/(1+e^(-x)), [0, 1; 2, 3])输出:
ans =
0.50000 0.73106
0.88080 0.95257这基本上是在矩阵/向量的每个元素上运行函数1/(1+e^(-x))。
发布于 2017-11-22 15:37:45
或者,您可以像下面这样使用逐元素运算符(请注意点前缀):
例如
mymatrix = 1 ./ (1 .+ e.^(-mymatrix));https://stackoverflow.com/questions/11386854
复制相似问题