【问题标题】:Perform a function on each value of a vector in matlab?在matlab中对向量的每个值执行一个函数?
【发布时间】:2021-10-14 23:13:27
【问题描述】:

我有一个向量,a,形状 (10000,1) 填充了值。我也有向量 b,相同的形状,用零填充。我想使用我的函数,将其应用于向量 a 中的每个值,然后将这些值返回到向量 b。以下是我尝试过的,以及它的一些变体。如何对向量的每个值执行此函数并将向量 b 中的每个零替换为该函数返回的值?

for i=1:length(a)
    b(i) = function(a)
end

【问题讨论】:

  • 也许你想要b(i) = function(a(i))

标签: matlab vector


【解决方案1】:

您可以使用arrayfun 来执行此操作

b = arrayfun(@someFunction, a); % Calls b(i) = someFunction(a(i)) for all elements of a

(尽管在 MATLAB 中尝试将 someFunction 设置为“vectorised”是很常见的,这样您就可以改为简单的 b = someFunction(a)

【讨论】:

  • 是的,你当然是对的。 (我会更新我的答案)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多