Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

Conditional split into columns

3 visualizaciones (últimos 30 días)
fatduck9
fatduck9 el 30 de Oct. de 2017
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
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 comentario
Stephen23
Stephen23 el 30 de Oct. de 2017
All elements of an array/matrix must contain a value. What value do you put into the second row third column position?

Respuestas (2)

Rik
Rik el 30 de Oct. de 2017
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 el 30 de Oct. de 2017
Editada: KL el 30 de Oct. de 2017
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)

La pregunta está cerrada.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by