You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中如何对向量的每个元素执行函数并赋值到对应向量

你原代码存在两个核心错误:

  1. function是MATLAB语法关键字,不能直接作为自定义函数的调用名,需要替换为你实际定义的函数名,比如你写的自定义函数叫custom_calc就填这个。
  2. 循环内你传入的是完整向量a,而非当前索引对应的单个元素a(i),所以无法得到对应位置的计算结果。

实现方案

方案1:修正循环写法

% 替换custom_calc为你实际的自定义函数名,函数需支持单个标量输入、返回单个标量结果
for i = 1:length(a)
    b(i) = custom_calc(a(i));
end

方案2:内置函数实现(更简洁高效)

用MATLAB内置的arrayfun可以直接完成逐元素调用函数的操作,无需手动写循环,对长度10000的向量计算效率更高:

% 替换custom_calc为你实际的自定义函数名
b = arrayfun(@custom_calc, a);

如果你的自定义函数本身已经支持向量输入(内部运算都用点运算、天然适配逐元素计算规则),可以直接调用,连arrayfun都不需要:

b = custom_calc(a);

内容的提问来源于stack exchange,提问作者Conweezy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:15:02