adding varied length vectors to a new matrix sequentially

I have a for loop which outputs a vector of varying length each time. I want to store each vector as a new row in a new matrix/array/structure (anything). I tried adding a line like this: temp1(:, i) = vec; with my vec to be stored going into a temp matrix. However, this does not work. Any tips on how I can achieve this?

 Respuesta aceptada

Sounds like a job for a cell array:
x = cell(n,1);
for k = 1:n
vec = ...;
x{k} = vec;
end

Más respuestas (1)

for k=1:10
vec=randi(10,1,randi(10),1) % your vector
out{k}=vec
end

2 comentarios

mwa710
mwa710 el 21 de Mzo. de 2013
this is great, thanks! do you now know a way I can extract that values to plot? essentially I want to make a raster plot of these vectors now
In general, you can access data in a cell array the same way: y = x{k} (then plot(y) or whatever). What exactly do you mean by a "raster plot"? This term seems to be context/application dependent. Can you describe the graph you're trying to make? I'm going to guess that you'll need to overlay plots using hold, if you're plotting a bunch of different-sized vectors. If so, you could do this inside the same for-loop that you're using to create/calculate the data in the first place.

Iniciar sesión para comentar.

Categorías

Más información sobre Mathematics en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 20 de Mzo. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by