繁体   English   中英

如何定义向量函数

[英]How to define a vector function

我想像这样在x定义一个向量函数[sin(x),sin(2*x), ... ,sin(100*x)]其中x是一个变量。 我定义的是:

for i=1:100
H(i)=@(x) sin(i*x);
end

但它不起作用。

方法一,使用向量化(最简单,最快):

H=@(N,x) sin((1:N)'.*x);
%With the '.*' operation u can create the full matrix in single call:
N=100; 
x=0:0.01:pi;
M=H(N, x)

方法二,使用arrayfun(可以推广到其他函数):

N=10;
H=@(x) arrayfun(@(i)sin(i*x),1:N);

你甚至可以在一个函数句柄中组合多个函数,例如

H = @(x) sin((1:length(x))'.*x);

这总是返回一个方阵; 在你的情况下是一个 315x315 的矩阵。 前 100 行与 Mendi Barel 建议的解决方案相同

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM