How obtain the Y value that corresponds to the largest X value for a number of plots?
    3 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Hi,
I am trying to write a code that gives me the Y value that corresponds to the largest X value for a number of plots.
I have a code that interpolates X values from Y. I just need the oposite and for the largest X values instead.
clear; clc;
Folder = cd;
N=170;
x2    = zeros(N, 10);
for k = 1:N;
  Driftt  = sprintf('Disp%d.out', k);
  Reactt  = sprintf('React%d.out', k);
  matDrift     = importdata(fullfile(Folder, Driftt));
  matReact = importdata(fullfile(Folder, Reactt));
  x1= matDrift(:,1);
  y1= matDrift(:,2);
[x3, ix] = unique(x1);
y3       = y1(ix);
A=dlmread('Time.txt');
for i=1:size(A,2)
    x2 (k,:) = interp1(y3, x3, A(:,i), 'linear');
    temp=x2(k,:);
temp(isnan(temp))=0.05;
x2(k,:)=temp;
    fid=fopen(['result_' num2str(i) '.txt'],'a');
    fprintf(fid,'%f\n',x2(k,:)); 
    fclose(fid);
end 
0 Commenti
Risposte (2)
  Yasasvi Harish Kumar
      
 il 18 Feb 2019
        
      Modificato: madhan ravi
      
      
 il 18 Feb 2019
  
      Hey,
I think the following should help. The variable big is an array of the largest x value in each row and the variable bigy is contains corresponding y values.
clear; clc;
Folder = cd;
N=170;
big = zeros(N);
bigy = zeros(N);
x2    = zeros(N, 10);
for k = 1:N;
  Driftt  = sprintf('Disp%d.out', k);
  Reactt  = sprintf('React%d.out', k);
  matDrift     = importdata(fullfile(Folder, Driftt));
  matReact = importdata(fullfile(Folder, Reactt));
  x1= matDrift(:,1);
  y1= matDrift(:,2);
[x3, ix] = unique(x1);
y3       = y1(ix);
A=dlmread('Time.txt');
for i=1:size(A,2)
    x2 (k,:) = interp1(y3, x3, A(:,i), 'linear');
    temp=x2(k,:);
temp(isnan(temp))=0.05;
x2(k,:)=temp;
for z = 1:10
    if x2(k,z)>big(z)
        big(z) = x2(k,z);
        bigy(z) = A(z,i);
    end
end
    fid=fopen(['result_' num2str(i) '.txt'],'a');
    fprintf(fid,'%f\n',x2(k,:)); 
    fclose(fid);
end 
I hope I was of some help.
Regards
2 Commenti
  Yasasvi Harish Kumar
      
 il 18 Feb 2019
				To interpolate you will need unique y3 and x3 values. Is there any repeating value in x3 and y3?
  KSSV
      
      
 il 18 Feb 2019
        Read about the function max
Let X,Y be your data.
[max_x,idx] = max(X) ;
max_y = Y(idx) ;
7 Commenti
Vedere anche
Categorie
				Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!