index info for CAT

1 visualización (últimos 30 días)
xplore29
xplore29 el 11 de Ag. de 2014
Comentada: Azzi Abdelmalek el 11 de Ag. de 2014
I am concatenating vectors x1,x2,x3 using y=cat(2,x1,x2,x3). Each one of these vectors have different lengths. I need to keep track index information for each one of them. How can I do this without loops.
x1=[1 1 0 1]; x2=[1 0]; x3=[1 1 1];
y=cat(2,x1,x2,x3);
= [1 1 0 1 1 0 1 1 1]
index = [1 4;5 6;7 9]

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 11 de Ag. de 2014
Editada: Azzi Abdelmalek el 11 de Ag. de 2014
index=reshape(cumsum([1 numel(x1)-1 1 numel(x2)-1 1 numel(x3)-1]),2,[])'
  1 comentario
Azzi Abdelmalek
Azzi Abdelmalek el 11 de Ag. de 2014
Instead of using 3 variables x1,x2 and x3 you can use a single variable
x={[1 1 0 1];[1 0];[1 1 1]} % x is a cell array
you can get your three variables
x{1}
x{2}
x{3}
% Now you can get y
y=cell2mat(x')
out=reshape(cumsum([1 numel(x1)-1 1 numel(x2)-1 1 numel(x3)-1]),2,[])'

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by