Convert vectors with different names to matrix

1 visualización (últimos 30 días)
salvor
salvor el 2 de Nov. de 2017
Editada: Stephen23 el 2 de Nov. de 2017
Hi guys,
I have n vectors (1x4000) whose names are a1, a2 up to an. I would like to create a matrix which is the rsult of vertcat(a1,a2,...,an). How can I do it without specifying the names of all the vectors in vertcat?
Thank you!
  7 comentarios
salvor
salvor el 2 de Nov. de 2017
Editada: salvor el 2 de Nov. de 2017
It means that I have been given a set of 10 different vectors, each of them 1x4000 called a1, a2 up to a10. I want to create a matrix 10x4000 containing these 10 vectors.
Stephen23
Stephen23 el 2 de Nov. de 2017
Editada: Stephen23 el 2 de Nov. de 2017
@salvor: I asked how you are getting this data into your workspace: are you loading the data from a file, or running some function or script, or doing something else?
Data does not just magically appear in a workspace. Some operation has to put it there, like loading from a file. Please tell us how you get that data into your workspace. Then we can help you to write better code.

Iniciar sesión para comentar.

Respuesta aceptada

OCDER
OCDER el 2 de Nov. de 2017
You could use the workaround of save/load to get what you want.
%Suppose you have these a1, a2 ... an
a1 = rand(1, 4000);
a2 = rand(1, 4000);
a3 = rand(1, 4000);
a13 = ones(1, 4000);
save('TEMPFILE.mat', '-regexp', 'a\d+') %saves variables with names a[number]
a = load('TEMPFILE.mat'); %loads into structure, a.a1, a.a2, a.a3, ...
delete('TEMPFILE.mat'); %delete temp mat file
anums = str2double(strrep(fieldnames(a), 'a', '')); %get the nth number of a
[~, sortidx] = sort(anums); %get the sort order. 1, 10, 2, 3 --> 1, 2, 3, 10
a = struct2cell(a); %convert structure to cell
a = vertcat(a{sortidx}); %sort a in right order, and then combine vertically
  1 comentario
Stephen23
Stephen23 el 2 de Nov. de 2017
Editada: Stephen23 el 2 de Nov. de 2017
Note: sorting into the correct order is simple with my FEX submission natsort.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by