首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNU Octave方法对矩阵中的每一项进行操作。八度"arrayfun(...)“示例

GNU Octave方法对矩阵中的每一项进行操作。八度"arrayfun(...)“示例
EN

Stack Overflow用户
提问于 2012-07-09 05:27:24
回答 4查看 22.2K关注 0票数 46

在GNU Octave版本3.4.3中,我在应用自定义函数来操作矩阵中的每个项目/元素时遇到了问题。

我有一个(2,3)矩阵,如下所示:

代码语言:javascript
复制
mymatrix = [1,2,3;4,5,6];

mymatrix

   1   2   3
   4   5   6

我希望使用矩阵的每个元素作为输入,并对其运行一个自定义函数,并让该函数的输出逐项替换mymatrix的内容。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-17 21:55:47

更简单的方法,正如Nasser指出的那样,下面的八度代码:

代码语言:javascript
复制
f=@(x) x+5;
A = [1, 0, -1; 3, 4, 5];
result = f(A)
result

将(x+5)应用于传入的每个元素,它将打印:

代码语言:javascript
复制
result =
    6    5    4
    8    9   10
票数 1
EN

Stack Overflow用户

发布于 2014-10-17 07:42:25

arrayfun可以很好地做到这一点:

代码语言:javascript
复制
arrayfun(@(x) 1/(1+e^(-x)), [0, 1; 2, 3])

输出:

代码语言:javascript
复制
ans =

   0.50000   0.73106
   0.88080   0.95257

这基本上是在矩阵/向量的每个元素上运行函数1/(1+e^(-x))

票数 75
EN

Stack Overflow用户

发布于 2017-11-22 15:37:45

或者,您可以像下面这样使用逐元素运算符(请注意点前缀):

  • .+
  • .-
  • ./
  • e.^

例如

代码语言:javascript
复制
mymatrix = 1 ./ (1 .+ e.^(-mymatrix));
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11386854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档