matlab:f(k_i,x)的和,其中k_i是标量,x是矩阵

matlab:f(k_i,x)的和,其中k_i是标量,x是矩阵,matlab,vector,matrix-multiplication,Matlab,Vector,Matrix Multiplication,除了使用循环,你知道如何计算这个和吗 sumi-fki,x,其中k_i是向量的一些条目,x是矩阵 目前我正在做的是这样,但我希望有一个通用的解决方案: for ii=1:length(k) psi=psi+f(k(ii),x) end 如果有任何问题: f(k,x)=g(k)*exp(k*x) 假设g可以接受向量输入并返回相同大小的向量结果,并且x只是一个标量 f=@(k,x) g(k).*exp(k*x); psi=sum(f(k,x)) 或者如果g不能或不能接受向量输入,你可以这样做

除了使用循环,你知道如何计算这个和吗

sumi-fki,x,其中k_i是向量的一些条目,x是矩阵

目前我正在做的是这样,但我希望有一个通用的解决方案:

for ii=1:length(k)
psi=psi+f(k(ii),x)
end
如果有任何问题:

f(k,x)=g(k)*exp(k*x)
假设g可以接受向量输入并返回相同大小的向量结果,并且x只是一个标量

f=@(k,x) g(k).*exp(k*x);
psi=sum(f(k,x))
或者如果g不能或不能接受向量输入,你可以这样做

g=@(k) arrayfun(g,k);

然后像前面一样定义f。

您的意思是只对特定的行求和吗? 如果是这样,这就可以做到:

a= [1 2 3 4;
    5 2 7 2;
    0 0 2 3];

k= [1 3]; %rows selection for sum

result= sum(a(k,:))

f和g的定义完全不同。如果它们可以在向量上使用运算符。什么是g?数组还是函数?抱歉误解了,x是矩阵。gk可以接受向量输入。你能添加一个输入和预期输出的例子吗?当然,这里有一个具体的例子x=linspace-5,5300;[xx,yy]=meshgridx,x;k=linspace-10,10400;psi=zerossizexx;对于ii=1:lengthk psi=psi+exp-kii^2/4*exp1i*kii*xx;结束图像如果您的问题案例不清楚,您最好添加简单的matlab代码,让我们了解这些变量是如何定义和构造的。谢谢,但这里的问题是,因为x是一个矩阵,所以和不是矩阵fk1,x+fk2,x+的和。。。。但是用向量k加权的列的一些求和。不完全是这样,我想求矩阵的和,例如k1^2*expk1*a+k2^2*expk2*a