Multiple outputs of a single function in a single array

2 次查看(过去 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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Import from MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by