matlab中累加表达式如何编写

 我来答
PeriShare
2016-04-29 · 分享PD理论最新研究成果和进展
PeriShare
采纳数:2408 获赞数:36830

向TA提问 私信TA
展开全部

主函数:

clc;clear all
x=1:1:10000;
a=f_summary(x)

函数:

function a=f_summary(x)
N=length(x);
a=0;
n=1;
for k=1:N-1
    a=a+(x(k+1)-x(k))*sin(2*k*n*pi/N);
end
a=a*2/N/(2*sin(pi/N));
end

结果:

a =

   1.3979e-14

>>

希望帮到你!

yuchaohua1989
推荐于2017-12-16 · TA获得超过167个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:124万
展开全部
建立m函数文件MDCT.m
function X=MDCT(x)
% X输出改进的离散余弦变换的值
% x输入向量
[m,n]=size(x);
if m~=1&n~=1
error('请输入向量!');
return;
end
M=length(x(:)); %向量x的长度
for n=0:1:floor((M/2-1))
k=0:(M-1);
X(n+1)=sum(sin(pi*(n+1/2)/M)*x(k+1).*cos(pi*(n+1/2+M/2)*(k+1/2)/M));%w(k)设定为sin(pi*(n+1/2)/M)
end

主窗口进行测试
>> x=[1 2 3 4];
>> X=MDCT(x)
X =
0.9587 -2.1663
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仗剑天涯1992
2013-08-16 · TA获得超过329个赞
知道答主
回答量:81
采纳率:0%
帮助的人:82.5万
展开全部
for n=0:M/2-1
for k=0:M-1
X(n)=w(k)*x(k)*cos(pi/(2*M)*(2*k+1+M/2)*(2*n+1));
end
end
追问
matlab编译不过,而且代码中没看见累加呀,只是在生成循环数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdinten
2013-08-16 · TA获得超过6592个赞
知道大有可为答主
回答量:3562
采纳率:56%
帮助的人:1545万
展开全部
for n=0:M/2-1
X(n)=0;
for k=0:M-1
X(n)=X(n)+w(k).*x(k).*cos(pi/(2*M).*(2*k+1+M/2)*(2*n+1));
end
end
需要用点乘,然后需要累加
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式