Can anyone please correct this code for me?

1 visualizzazione (ultimi 30 giorni)
Hi,
I am trying to extract data from a sequence of files. I also need to extract the value of x that corresponds to peak y value from each plot. I have tried the following code but I can't get results. I would be grateful if someone can check it for me. I have attached herewith the files for your kind reference.
close all; clear all; clc;
folder = cd;
for k = 1:2;
for j = 1:2;
matFilenameA = sprintf('X%d.out', k);
matData1 = load(fullfile(cd, matFilenameA));
%
matFilenameB = sprintf('Y%d.out', j);
matData2 = load(fullfile(cd, matFilenameB));
x = matFilenameA(:,2);
y = matFilenameB(:,2);
[maxvaly,idx] = max(y) ;
maxvalx = x(idx);
fid=fclose('all');
end
end
  4 Commenti
Birdman
Birdman il 11 Nov 2017
You do not assign numerical arrays to x and y. I think you should write
x= matData1(:,2);
y= matData2(:,2);
Ismail Qeshta
Ismail Qeshta il 11 Nov 2017
Thanks. I have tried it, but the it still shows the following error message:
Index exceeds matrix dimensions.
Error in Try2 (line 14)
maxvalx = x(idx);

Accedi per commentare.

Risposta accettata

KSSV
KSSV il 11 Nov 2017
files = dir('*.txt') ;
N = length(files) ;
iwant = zeros(N,2) ;
for i = 1:N
data = importdata(files(i).name) ;
[val,idx] = max(data(:,2)) ;
iwant(i,:) = [data(idx,1),val] ;
end
Copy all the text file sin one folder and runt his code.
  5 Commenti
KSSV
KSSV il 11 Nov 2017
That's what the first code does.....you asked the same question yesterday....without reading your question I answered that.
Ismail Qeshta
Ismail Qeshta il 11 Nov 2017
Thank you KSSV for your great help yesterday and today. Yes, I actually could get the the code yesterday work for only one set of data. But I still have confusion about how to get it worked in a loop.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays 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!

Translated by