Convert vectors with different names to matrix

1 Ansicht (letzte 30 Tage)
salvor
salvor am 2 Nov. 2017
Bearbeitet: Stephen23 am 2 Nov. 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 Kommentare
salvor
salvor am 2 Nov. 2017
Bearbeitet: salvor am 2 Nov. 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 am 2 Nov. 2017
Bearbeitet: Stephen23 am 2 Nov. 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

OCDER
OCDER am 2 Nov. 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 Kommentar
Stephen23
Stephen23 am 2 Nov. 2017
Bearbeitet: Stephen23 am 2 Nov. 2017
Note: sorting into the correct order is simple with my FEX submission natsort.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by