Ciao a tutti, mi scuso per non aver descritto il precedente problema con esattezza.
Ho un numero molto elevato di curve 2d ottenute attraverso 4 diversi parametri (4 cicli for)
Per ciascuna curva devo individuare 2 punti corrispondenti a dei valori di y rispetto al valore max di y (ad esempio punto1 con y=0.60*ymax e punto2 con y=0.75*ymax) ed interrompere il plottaggio di ciascun grafico quando il valore raggiunge y=0.75 (ovviamente nel tratto decrescente, dopo aver raggiunto il valore massimo).
Quali comandi posso utilizzare?
% Script per la post-processione
clear
close all
MainDir = 'C:\Users\User\Desktop\OpenSees\bin\';
OutputDir = strcat(MainDir,'POST-PROCESSIONE\FIGURE\');
mkdir(OutputDir)
% Lettura dei parametri
param_Alpha=strcat(MainDir,'PARAMETRI\angolo.txt');
param_Alpha=load(param_Alpha);
param_p=strcat(MainDir,'PARAMETRI\armatura_longitudinale.txt');
param_p=load(param_p);
param_v=strcat(MainDir,'PARAMETRI\sforzo_assiale.txt');
param_v=load(param_v);
param_w=strcat(MainDir,'PARAMETRI\armatura_trasversale.txt');
param_w=load(param_w);
% importazione risultati
for x=1:length(param_Alpha)
for i=1:length(param_p)
for j=1:length(param_v)
for k=1:length(param_w)
inputDir=strcat("C:\Users\User\Desktop\OpenSees\bin\PARAMETRIZZAZIONE_",num2str(param_Alpha(x)),"\",num2str(param_p(i)),"\",num2str(param_v(j)),"\",num2str(param_w(k)));
F_BASE=load(strcat("C:\Users\User\Desktop\OpenSees\bin\PARAMETRIZZAZIONE_",num2str(param_Alpha(x)),"\",num2str(param_p(i)),"\",num2str(param_v(j)),"\",num2str(param_w(k)),'\TaglioBase.txt'));
F_BASE([1,2,3,4,5,6,7,8,9,10],:)=[]
F_BASE(:,[1,3,4,6,7,9,10,12,13])=[]
sum(F_BASE, 2)
DISP=load(strcat("C:\Users\User\Desktop\OpenSees\bin\PARAMETRIZZAZIONE_",num2str(param_Alpha(x)),"\",num2str(param_p(i)),"\",num2str(param_v(j)),"\",num2str(param_w(k)),'\DFree1141.txt'));
DISP([1,2,3,4,5,6,7,8,9,10],:)=[]
pushover_curve{x,i,j,k}=[1000*DISP(:,2),-0.001*sum(F_BASE,2)];
end
end
end
end
% plottaggio
fig = figure('InvertHardcopy','off','Color',[1 1 1],'Renderer','painters','Position', [10 10 900 900]);
axes1 = axes('Parent',fig,'FontSize',12,'FontName','times new roman','OuterPosition',[0 0 1 1]);
axis square
axis ([0 180 0 1000])
ylabel('Reaction [KN]','FontSize',12,'FontName','times new roman');
xlabel(' Displacement [m]','FontSize',12,'FontName','times new roman');
title(strcat('Curva Pushover - modello M-P2 '));
for x=1:length(param_Alpha)
for i=1:length(param_p)
for j=1:length(param_v)
for k=1:length(param_w)
axis ([0 180 0 1200])
curve2plot=pushover_curve{x,i,j,k};
plot(curve2plot(:,1),curve2plot(:,2),'LineStyle','-','LineWidth',0.8,'Color',rand(1,3));
legenda_curva=char(strcat('alpha= ', num2str(param_Alpha(x)), '-p =', num2str(param_p(i)),'-v =' ,num2str(param_v(j)),'-w =',num2str(param_w(k))));
legend(legenda_curva,'Location','southoutside','Orientation', 'horizontal' ,'Interpreter','none','FontSize',12,'FontName','times new roman');
grid on
hold off
axis square
axis ([0 180 0 1000])
ylabel('Reaction [KN]','FontSize',12,'FontName','times new roman');
xlabel(' Displacement [m]','FontSize',12,'FontName','times new roman');
title(strcat('Curva Pushover - modello M-P2 '));
outputfilename=strcat(OutputDir,'pushover',num2str(param_Alpha(x)),"-",num2str(param_p(i)),"-",num2str(param_v(j)),"-",num2str(param_w(k)),'.png');
saveas(gcf,outputfilename);
end
end
end
end
[/size]