フィルターのクリア

Sum of plots in for loop

1 回表示 (過去 30 日間)
Arthur Moya
Arthur Moya 2020 年 6 月 15 日
コメント済み: Arthur Moya 2020 年 7 月 31 日
Hi there,
I generated the attached plots in a for loop.
What I want eventually is to sum these plots to generate the black curve.
How can I go on about that?
Thank you for your help in advance,
Arthur
  2 件のコメント
KSSV
KSSV 2020 年 6 月 15 日
編集済み: KSSV 2020 年 6 月 15 日
Share your code....Add all curves...is it what you want?
Arthur Moya
Arthur Moya 2020 年 6 月 15 日
Hi @KSSV,
Please see the code below.
%% %Partial Temporal Coherence curve
WL = 0.0195 % Ang^-1
DeltaS = 36 % Ang
g = [0:0.01:3] % Ang^-1
Etr = exp(-0.5*pi^2*DeltaS*WL^2.*g.^4);
plot (g,Etr);
%% %Contrast Transfer Function
D= [150:12.5:200] %Ang
for i=1:length(D)
Cs = -12960 % Ang
Xr = 0.5*pi.*D(i)*WL.*g.^2 + 0.25*pi*Cs*WL^3.*g.^4;
Wv= sin(Xr).*Etr;
hold on
plot (g,Wv)
xlabel('g(Ang^{-1})','Fontsize',20)
ylabel('sin X', 'Fontsize',20)
legend ('E_{t}','20','40','60','80','Location','best','Fontsize',30)
line(xlim, [0,0], 'Color', 'k', 'LineWidth', 1)
end

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

回答 (2 件)

Rob Robinson
Rob Robinson 2020 年 6 月 15 日
I don't think the black curve is the sum of all of these curves as the amplitude would be significantly higher than any of the one lines when they are so close to being in phase? I've given an example below for just two curves of how you could calculate the sum of the curves or alternatively the average or maximum. Hopefully one of those is what you are looking for.
c = 0:0.25:0.25;
x = linspace(1,10,100);
figure()
hold on
ySum = zeros(length(c),length(x));
for cVal = 1:length(c)
legendName = sprintf('y=sin(x+%.2f)',c(cVal));
y = sin(x+c(cVal)) ;
ySum(cVal,:) = y;
plot(x,y,'DisplayName',legendName);
end
plot(x,mean(ySum),'DisplayName' ,'Average')
plot(x,sum(ySum),'DisplayName' ,'Sum')
plot(x,max(ySum),'DisplayName' ,'Max')
legend('location','best')
  1 件のコメント
Arthur Moya
Arthur Moya 2020 年 6 月 15 日
Hi Rob,
I suspect the curve that most resembles what I am looking for is the max curve. I have seen below some suggestions that I may be looking for the envelope. What would be the difference between the max curve and the envelope?
Thank you and kind regards,
Arthur

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


Ameer Hamza
Ameer Hamza 2020 年 6 月 15 日
This seems like envelope(): https://www.mathworks.com/help/releases/R2020a/signal/ref/envelope.html of these curves. It is from the signal processing toolbox.
  4 件のコメント
Ameer Hamza
Ameer Hamza 2020 年 6 月 15 日
Can you share the data?
Arthur Moya
Arthur Moya 2020 年 7 月 31 日
Dear @ Ameer Hamza,
below is the code I used to generate the data.
Thank you and kind regards,
Arthur
%% %Partial Temporal Coherence curve
WL = 0.0195 % Ang^-1
DeltaS = 36 % Ang
g = [0:0.01:3] % Ang^-1
Etr = exp(-0.5*pi^2*DeltaS*WL^2.*g.^4);
plot (g,Etr);
%% %Contrast Transfer Function
D= [150:12.5:200] %Ang
for i=1:length(D)
Cs = -12960 % Ang
Xr = 0.5*pi.*D(i)*WL.*g.^2 + 0.25*pi*Cs*WL^3.*g.^4;
Wv= sin(Xr).*Etr;
hold on
plot (g,Wv)
xlabel('g(Ang^{-1})','Fontsize',20)
ylabel('sin X', 'Fontsize',20)
legend ('E_{t}','20','40','60','80','Location','best','Fontsize',30)
line(xlim, [0,0], 'Color', 'k', 'LineWidth', 1)
end

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

カテゴリ

Help Center および File ExchangeLine Plots についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by