フィルターのクリア

Intercept of each line to y-line

10 ビュー (過去 30 日間)
Sarfaraz Ahmed
Sarfaraz Ahmed 2022 年 2 月 20 日
編集済み: DGM 2022 年 2 月 20 日
Hello folks,
I am making curve fit plot for some data and trying to make intercept point of each data line with y-line.
For examples. each line should give intercept point so there will be 10 intercept points which can be stored in any array.
I am concerning only x-axis value in the x-yline(1.5228, '--') intercept values. I tried with intercept commands but the problem is here I am dealing with objects.
I am share here code. please have a look and help in this regard, so that when I run a code it will provides x-y intercept values.
clear
close all
Data=[
0.11 0.3 0.28 0.6 0.31
0.23 0.78 0.57 1.08 0.43
0.26 0.95 0.84 1.25 0.46
0.55 1.2 1.1 1.5 0.75
6.95 7.05 8.25 7.35 7.15
5.2 4.34 4.68 4.64 5.4
4.81 4.74 4.21 5.04 5.01
3.96 4.07 3.96 4.37 4.16
3.88 3.78 3.25 4.08 4.08
2.69 2.4 2.81 2.7 2.89
2.36 2.35 2.7 2.65 2.56
2.24 2.28 2.35 2.58 2.44
1.9 2.07 1.94 2.37 2.1
1.7 1.95 1.68 2.25 1.9
0.57 1.67 1.47 1.97 0.77
0.47 0.89 1.1 1.19 0.67
];
figure(1)
plot(Data,'linewidth',1.0)
grid
legend('C1','C2','C3','C4','C5')
x=0:15;
x=x';
c1=Data(:,1);
c2=Data(:,2);
c3=Data(:,3);
c4=Data(:,4);
c5=Data(:,5);
f1 = fit(x(5:16),c1(5:16),'exp1');
f2 = fit(x(5:16),c2(5:16),'exp1');
f3 = fit(x(5:16),c3(5:16),'exp1');
f4 = fit(x(5:16),c4(5:16),'exp1');
f5 = fit(x(5:16),c5(5:16),'exp1');
figure(2)
plot(f1,'b')
hold on
plot(f2,'r')
plot(f3,'g')
plot(f4,'m')
plot(f5,'k')
yline(1.5228, '--')
grid
axis([0 17 0 7.5])
legend('C1','C2','C3','C4','C5')
Thank you.
  2 件のコメント
Torsten
Torsten 2022 年 2 月 20 日
f1(0),...,f5(0) are the y-intercepts.
Sarfaraz Ahmed
Sarfaraz Ahmed 2022 年 2 月 20 日
編集済み: Sarfaraz Ahmed 2022 年 2 月 20 日
Thank you for your answer. Actually, this one for y-intercept. I want to get intercept with yline(1.5228, '--').
for example, in the attached figure intercept for "f1" is "12.492". however when I display f1 it shows y-intercept not y-line intercept. can you please let me know how can I get intercept with y-lines ? I corrected a question little bit as well.
Thank you

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

採用された回答

Torsten
Torsten 2022 年 2 月 20 日
編集済み: Torsten 2022 年 2 月 20 日
a = f1.a;
b = f1.b;
xintercept1 = 1/b*log(1.5228/a);
(Same for f2,f3,f4 and f5)
  1 件のコメント
Sarfaraz Ahmed
Sarfaraz Ahmed 2022 年 2 月 20 日
Great. It helps .
Thank you so much !!

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

その他の回答 (1 件)

DGM
DGM 2022 年 2 月 20 日
編集済み: DGM 2022 年 2 月 20 日
Consider the example:
Data=[
0.11 0.3 0.28 0.6 0.31
0.23 0.78 0.57 1.08 0.43
0.26 0.95 0.84 1.25 0.46
0.55 1.2 1.1 1.5 0.75
6.95 7.05 8.25 7.35 7.15
5.2 4.34 4.68 4.64 5.4
4.81 4.74 4.21 5.04 5.01
3.96 4.07 3.96 4.37 4.16
3.88 3.78 3.25 4.08 4.08
2.69 2.4 2.81 2.7 2.89
2.36 2.35 2.7 2.65 2.56
2.24 2.28 2.35 2.58 2.44
1.9 2.07 1.94 2.37 2.1
1.7 1.95 1.68 2.25 1.9
0.57 1.67 1.47 1.97 0.77
0.47 0.89 1.1 1.19 0.67
];
ymark = 1.5228; % need to be able to use this
x = (0:15).';
plotcolors = {'b','r','g','m','k'};
f = cell(size(Data,2),1);
fk = zeros(size(Data,2),2);
for kn = 1:numel(f)
f{kn} = fit(x(5:16),Data(5:16,kn),'exp1');
fk(kn,:) = coeffvalues(f{kn});
plot(f{kn},plotcolors{kn})
hold on
end
yline(ymark, '--');
grid
axis([0 17 0 7.5])
intx = log(ymark./fk(:,1))./fk(:,2); % inverse of fit function
plot(intx,ymark,'kx') % show with marker
legend('C1','C2','C3','C4','C5')

カテゴリ

Help Center および File ExchangeSpecifying Target for Graphics Output についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by