Matlab中如何对向量的每个元素执行函数并赋值到对应向量
你原代码存在两个核心错误:
function是MATLAB语法关键字,不能直接作为自定义函数的调用名,需要替换为你实际定义的函数名,比如你写的自定义函数叫custom_calc就填这个。- 循环内你传入的是完整向量
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
相关产品推荐
相关产品推荐

