[英]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.