如何在MATLAB中使用求和?

时间:2010-04-16 19:11:03

标签: matlab

我有一个随机生成的向量,比如AM

说:

A = rand(M,1)

我还有一个函数,X(k) = sin(2*pi*k)

我如何找到Y(k)A(l)*X(k-l)的总和为l从0变为M

假设k的任何值......但答案应该是所有M+1项的总和。

4 个答案:

答案 0 :(得分:2)

鉴于Mk,您可以执行总结:

A = rand(M+1,1);            %# Create M+1 random values
Y = sin(2*pi*(k-(0:M)))*A;  %# Use a matrix multiply to perform the summation

编辑:您甚至可以为Y创建一个以kA为参数的函数:

Y = @(k,A) sin(2*pi*(k+1-(1:numel(A))))*A;  %# An anonymous function
result = Y(k,A);                            %# Call the function Y

答案 1 :(得分:0)

A = rand(1, M + 1);
X = sin(2 * pi * (k - (0 : M)));
total = sum(A .* X);

答案 2 :(得分:0)

如果你正在尝试进行傅立叶变换,你也应该看一下fft。

答案 3 :(得分:0)

您可能正在寻找向量A和X的卷积:

Y = conv(A, X);