How to create a function as sum of some sine functions?
29 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Klaudjo Aliaj
am 6 Jan. 2021
Kommentiert: Star Strider
am 8 Jan. 2021
I am trying to create a function which looks like:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/480493/image.png)
but I am not finding the way how do it it. Can someone help me?
1 Kommentar
Akzeptierte Antwort
Star Strider
am 6 Jan. 2021
A loop is not necessary.
If you have R2016b or later, try this (using your own variable vectors):
t = linspace(0, 2, 750); % Time Vector
a = 1:10; % Amplitude Vector
f = linspace(1000, 2000, numel(a)); % Frequency Vector
th = linspace(-pi, pi, numel(a)); % Phase Vector
y = sum(a(:).*sin(2*pi*f(:)*t + th(:))); % Compute Function, Then Take Sum Of Rows
figure
plot(t, y)
grid
This uses automatic implicit expansion, introduced in R2016b. If you have an earlier version:
y = sum(bsxfun(@times, a(:), sin(2*pi*f(:)*t + th(:)))); % Compute Function, Then Take Sum Of Rows
produces the same result.
.
2 Kommentare
Weitere Antworten (1)
SHIVAM KUMAR
am 6 Jan. 2021
Bearbeitet: SHIVAM KUMAR
am 6 Jan. 2021
This can be done like
y=0; %necessary to add the other things
for i=1:length(a)
y=y+a(i).*sind(2*pi*f(i).*t+theta(i));
end
If this works accept this answer but
if this does not work tell the error/other requirements in comment
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!