MATLAB Answers

How to calculate reveral summations

52 ビュー (過去 30 日間)
Xuefei Sun
Xuefei Sun 2021 年 2 月 23 日
編集済み: Matt J 2021 年 2 月 25 日
I need to calculate sigma=sum(u(t)*u(t+a)), from a to 600(t=a to 600), and a is from 1 to 600. So I should get 600 different sigma.
How to do it?
  3 件のコメント
Xuefei Sun
Xuefei Sun 2021 年 2 月 24 日
Sorry, the "h" should be a.
The data is u. For example u1 to u1500. And when a=1, I will get sigma(1)=u1*u(1+1)+u(2)*u(2+1)+...u(600)*u(600+1), and then a=2, I will get sigma(2)=u2*u(2+2)+u(3)*u(3+2)+...u(600)*u(600+2). ... a=600, sigma(600)=u600*u(600+600)

サインインしてコメントする。

回答 (2 件)

Matt J
Matt J 2021 年 2 月 23 日
Use conv() or xcorr().
  8 件のコメント
Xuefei Sun
Xuefei Sun 2021 年 2 月 24 日
Yes, I think that is my problem, since my u data is 600x1, my y data is also 600x1. Both of them are Vrctors.
So how to fix it?

サインインしてコメントする。


Matt J
Matt J 2021 年 2 月 24 日
編集済み: Matt J 2021 年 2 月 24 日
T=triu(ones(600));
I=(1:600).' + (1:600);
ur=u(:).';
sigma= (T.*ur(I))*ur(1:600).';
  2 件のコメント
Matt J
Matt J 2021 年 2 月 25 日
Works fine when I run it.
u=rand(1,1500); %Example data
T=triu(ones(600));
I=(1:600).' + (1:600);
ur=u(:).';
sigma= (T.*ur(I))*ur(1:600).';
whos sigma
Name Size Bytes Class Attributes sigma 600x1 4800 double

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by