How can I fix this error?

Hello, I wrote this code:
figure(3)
dt = 0.001;
T = 60;
t = [0:dt:T] ;
omega0 = 2 * pi / T;
for k = 1:20
ck = cos (k * omega0 * t); % cosine component
a(k) = 2/T * ( sum (ECG_ac.*ck) * dt);
sk = sin (k * omega0 * t); % sine component
b(k) = 2/T * ( sum (ECG_ac.*sk) * dt);
end
magnitude = sqrt(a.^2 + b.^2);
plot(magnitude)
but i have this error:
Error using .*
Matrix dimensions must agree.
Error in Q2ECG (line 40)
a(k) = 2/T * ( sum (ck.*ECG_ac) * dt);
what's wrong?
Thanks for your help

回答 (2 件)

Roger Stafford
Roger Stafford 2017 年 3 月 12 日

0 投票

Judging by your error message, the two arrays, ck and ECG_ac, have different sizes. That's a no-no.

4 件のコメント

Walter Roberson
Walter Roberson 2017 年 3 月 12 日
We do not know what size ECG_ac is, but ck is the same size as t
Ghazal Hnr
Ghazal Hnr 2017 年 3 月 13 日
The size of ECG_ac is [1 15000], Is anyway to fix this?
Roger Stafford
Roger Stafford 2017 年 3 月 13 日
Just change dt:
dt = linspace(0,T,15000);
Ghazal Hnr
Ghazal Hnr 2017 年 3 月 13 日
I have the same error again!
Walter Roberson
Walter Roberson 2017 年 3 月 13 日

0 投票

T = 60;
t = linspace(0,T,length(ECG_ac));
dt = t(2)-t(1);
omega0 = 2 * pi / T;
for k = 1:20
ck = cos (k * omega0 * t); % cosine component
a(k) = 2/T * ( sum (ECG_ac.*ck) * dt);
sk = sin (k * omega0 * t); % sine component
b(k) = 2/T * ( sum (ECG_ac.*sk) * dt);
end
magnitude = sqrt(a.^2 + b.^2);
plot(magnitude)

この質問は閉じられています。

タグ

質問済み:

2017 年 3 月 12 日

閉鎖済み:

2021 年 8 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by