Concatenating vectors based on list of variable names

조회 수: 5 (최근 30일)
Jerki Jokne
Jerki Jokne 2020년 3월 17일
댓글: Jerki Jokne 2020년 3월 17일
I have 5 column vectors in my workspace with the same length, and a cell array with their names in the order that I would like to horizontally concatenate them in. In this example I use 5 vectors, but there can be more.
a1 = rand(5,1);
a10 = rand(5,1);
a11 = rand(5,1);
a2 = rand(5,1);
a3 = rand(5,1);
order = {'a1', 'a2', 'a3', 'a10', 'a11'};
How can I horizontally concatenate the variables in this order, such that I have the following result?
[a1, a2, a3, a10, a11]

채택된 답변

BobH
BobH 2020년 3월 17일
편집: BobH 2020년 3월 17일
c = cellfun(@eval, order, 'un', 0);
r = vertcat( c{:} );
% horzcat if that's what you wanted, and all variables in order are same size
vertical concatenation looks like this (semicolons not commas)
[a1; a2; a3; a10; a11]
  댓글 수: 1
Jerki Jokne
Jerki Jokne 2020년 3월 17일
Sorry, I meant horizontally. I edited the question to be consistent.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Sriram Tadavarty
Sriram Tadavarty 2020년 3월 17일
Hi Jerki,
This can be done with a for loop as shown below:
out =[]
for i = 1:numel(order)
out = [out eval(order{i})];
end
Hope this helps.
Regards,
Sriram

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by