How to modify this "for" loop so it can read maximum Y value instead of X?

조회 수: 3 (최근 30일)
Hi,
I have this code that reads maximum X value and its corresponding Y value, and prints all results (Y values) in one file.
I just need to modify this code, so it can read the maximum Y value.
For example, for the following set of data:
X Y
1 2
2 16
3 9
4 15
The code reads 4 (as the maximum X value) and prints 15 (as the corresponding Y value to the maximum X).
However, I need the modified code to just read and print 16 (as the maximum Y value).
The code:
S = dir('*.out');
C = natsortfiles({S.name});
N = numel(C);
g = 10;
Z = nan(g,1);
for k = 1:N/g
for j = 1:g;
data = load(C{10*(k-1)+j});
[~,idx] = max(data(:,1));
Z(j) = data(idx,2);
end
dlmwrite(['Result_',num2str(k),'.txt'],Z);
end

채택된 답변

Walter Roberson
Walter Roberson 2019년 3월 4일
편집: Walter Roberson 2019년 3월 4일
max(data(:,2)) instead of max(data(:,1)) . And on the next line assign from data(idx,1) instead of data(idx,2) if you want the corresponding X value, or leave it as-is if you want the y value.
  댓글 수: 3
Walter Roberson
Walter Roberson 2019년 3월 4일
S = dir('*.out');
C = natsortfiles({S.name});
N = numel(C);
g = 10;
for k = 1:N/g
Z = nan(g,1);
for j = 1:g;
data = load(C{10*(k-1)+j});
Z(j) = max(data(:,2));
end
dlmwrite(['Result_',num2str(k),'.txt'],Z);
end
Ismail Qeshta
Ismail Qeshta 2019년 3월 4일
편집: Ismail Qeshta 2019년 3월 4일
Hi Walter,
Great. Now it works well. Thank you very much.
Yes. It is acutally the second line. It should be Z(j) = data(idx,2) instead of Z(j) = data(idx,1) because we need to read and print Y not X.
Thank you again for your time and help.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by