Info

此问题已关闭。 请重新打开它进行编辑或回答。

Conditional split into columns

3 次查看(过去 30 天)
fatduck9
fatduck9 2017-10-30
关闭: MATLAB Answer Bot 2021-8-20
Hi all, I have got this array A=[10 20 30 40 50 10 20 30 40 10 30 30 40 .. .. Val]
My goal is to create a new column once an element of value 10 occurs in the array. Then I want to make a maximum of each particular column.
10 10 10
20 20 ..
30 30 ..
40 40
50
[50] [40] [..]
I tried some built in function within a loop (like sum, reshape, splitarray etc.) but there has always been an error which I did not understand quite much. Would anybody give me a hint, please?
Thank you.
  1 个评论
Stephen23
Stephen23 2017-10-30
All elements of an array/matrix must contain a value. What value do you put into the second row third column position?

回答(2 个)

Rik
Rik 2017-10-30
You might be able to bodge this together with a conversion to char, use strsplit (or even textscan), and use cellfun to convert back to double and find the max.

KL
KL 2017-10-30
编辑:KL 2017-10-30
You could use a cell array,
A=[10 20 30 40 50 10 20 30 40 10 30 30 10 20 10 10 20 30];
inds = find(A==10);
res = arrayfun(@(x,y) A(x:y-1),inds,[inds(2:end) numel(A)+1],'uni',0)
and then to find the maximum,
maxRes = cellfun(@max,res)

此问题已关闭。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by