Multiple outputs of a single function in a single array

1 次查看(过去 30 天)
Hi,
I am trying for the maximum value of each column of an excel file (total 63 columns).
stress=xlsread('output.xlsx','sheet1')
for i=1:1:63
x=max(s(:,i))
end
This gives me an output as
s=
123
s=
345
s=
232
How can I get all the output values in a single array as
s=
123
345
232.
Also, when I terminate the function with ";" at s=max(s(:,i));
and try to get the output in the command window, it is giving me just the last result 232.
How can I get the results in a single column even when I terminate the statement?
Thanks.

采纳的回答

Stephen23
Stephen23 2018-9-13
编辑:Stephen23 2018-9-13
N = 8;
C = cell(1,N);
for k = 1:N
S = xlsread('output',sprintf('sheet%d',k));
C{k} = max(S,[],1).';
end
M = [C{:}]
This is just based on the examples in the MATLAB documentation:

更多回答(1 个)

Walter Roberson
Walter Roberson 2018-9-13
x(i) =max(s(:,i));
Or you can skip the loop and use the single statement
x = max(s);
max automatically takes the maximum along each column.
  5 个评论
JAGAN MOHAN KUMMARI
Hi Stephen,
Actually, I am reading multiple sheets of a file for a similar result from each sheet. I should learn more of programming skills to make life easy.
Tried your comment. Its giving answers for the first sheet.
The problem: 8 Sheets of an excel file, each sheet has 63 columns. I want the maximum value of each column of a sheet as a single column, along with 7 other columns of maximum values of the remaining 7 sheets.
I have written it this way
s1=xlsread('output','Sheet1')
s2=xlsread('output','Sheet2')
...
s8=xlsread('output','Sheet8')
x1=max(s1);
x2=max(s2);
...
x8=max(s8);
s=[s1' s2'....s8']
Would be thankful to make it simpler.
Thanks.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by