Matlab 如何定义向量函数

Matlab 如何定义向量函数,matlab,vector,Matlab,Vector,我想在x中定义一个向量函数,如下[sin(x),sin(2*x),…,sin(100*x)]其中x是一个变量。我的定义是: for i=1:100 H(i)=@(x) sin(i*x); end 但它不起作用 方法1,使用矢量化(最简单、最快): 方法2,使用arrayfun(可以推广到其他函数): 您甚至可以在一个函数句柄中组合多个函数,例如 H = @(x) sin((1:length(x))'.*x); 它总是返回一个平方矩阵;在您的例子中,是315x315矩阵。前100行与Mendi

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

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

但它不起作用

方法1,使用矢量化(最简单、最快):

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


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

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

它总是返回一个平方矩阵;在您的例子中,是315x315矩阵。前100行与Mendi Barel建议的解决方案相同

这一行有用吗?那么
H=@(x)sin((1:100)。*x)
?@MendiBarel你能告诉我这个函数[sin(x),…,sin(10x),cos(x),…,cos(10x)]吗?它基本上是一样的,
H=@(x)[sin 1:10.*x),cos((1:10)。*x)]
N=10;
H=@(x) arrayfun(@(i)sin(i*x),1:N);
H = @(x) sin((1:length(x))'.*x);