Can anyone please correct this code for me?

1 次查看(过去 30 天)
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 个评论
Birdman
Birdman 2017-11-11
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 2017-11-11
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);

请先登录,再进行评论。

采纳的回答

KSSV
KSSV 2017-11-11
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 个评论
KSSV
KSSV 2017-11-11
That's what the first code does.....you asked the same question yesterday....without reading your question I answered that.
Ismail Qeshta
Ismail Qeshta 2017-11-11
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by