How to extract the data (y-axis) for a given value ( x-value)?

In this IDA_Plot_CLUSTER_UPDATED.mat file, I'm able to plot the (Figure B) upto certain points. But I want to get the exact pattern of that part i.e. in each curve (figure B) after the end point it will be extended upto 0.08 in a constant pattern. In this same plot, I want to get the y-values of corresponding to certain value of x.
Note : Limit y-values
PGA_Scale = [0.1:0.1:5];
figure(21) % to plot figure B
for tt = 1:60
plot(MIDR(tt,:),PGA_EQ(tt,1)*PGA_Scale,'-*r','linewidth',0.5);hold on;
end
xlabel('Maximum Storey Drift Ratio (MSDR)')
ylabel('IM (PGA)')
title('Incremental Dynamic Analysis (IDAs)for GMSetAll')
set(gcf,'position',[ 146 378 858 779])
set(findall(gcf,'-property','Fontsize'),'Fontsize',12)
print('DT2100','-dpng','-r300');
Figure A
Figure B
Desire_Limit_Collapse = 0.01; % values to be calculated from the graph corresponding this Desire_Limit_Collapse
for ii= 1:60
IM_Collapse_find(ii)= interp1(MIDR(ii,:),PGA_EQ(ii,1)*PGA_Scale,Desire_Limit_Collapse);
end

 Accepted Answer

load('IDA_Plot_CLUSTER_UPDATED.mat')
PGA_Scale = [0.1:0.1:5];
figure(1) % to plot figure B
% for tt = 1:60
% plot(MIDR(tt,:),PGA_EQ(tt,1)*PGA_Scale,'-*r','linewidth',0.5);hold on;
% end
plot(MIDR',PGA_EQ'.*PGA_Scale','-*r','linewidth',0.5);
xlabel('Maximum Storey Drift Ratio (MSDR)')
ylabel('IM (PGA)')
title('Incremental Dynamic Analysis (IDAs)for GMSetAll')
set(findall(gcf,'-property','Fontsize'),'Fontsize',12)
print('DT2100','-dpng','-r300');
% Extend the plot
figure(2)
xi = linspace(0,0.08,100) ;
for tt = 1:60
yi = interp1(MIDR(tt,:),PGA_EQ(tt,1)*PGA_Scale,xi,'nearest','extrap') ;
plot(xi,yi,'-*r','linewidth',0.5);hold on;
end

7 Comments

@KSSV thanks. In this plot, for two or three curves smooth transition is possible?
What do you mean by smooth transition? It is an extrapolation so cannot be trusted..
@KSSV yeah I know it's extrapolation. I'm just asking if there is a possiblity of making smooth transition i.e. no kink will be there in this plot.
@KSSV How to extract y data from this for certain x values?
Use interp1.
If (x,y) is your data and you seek value at xi..
yi = interp1(x,y,xi)
@KSSV I want to interpolate data from the extended plot Kindly help me. In figure A, the way it had been shown.
For extended plot too use interp1 with extrapolation on. This already I have shown/ given in the answer.

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Objects in Help Center and File Exchange

Products

Release

R2017b

Asked:

on 3 May 2021

Commented:

on 4 May 2021

Community Treasure Hunt

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

Start Hunting!