Concatenate a variable number of matrices

5 次查看(过去 30 天)
Hi All,
How can I concatenate a variable number of matrices that is decided by the user's input?
Thanks..
  1 个评论
Stephen23
Stephen23 2017-10-23
编辑:Stephen23 2017-10-23
This is simple. Ensure that you store all of the matrices in one cell array C, then you can simply do this:
cat(3,C{:})
You can change the dimension to suit your needs. Also you can easily select how many you want to concatenate, by using simple and efficient indexing 1:N:
cat(3,C{1:N})
Note that accessing lots of separate variables inside a loop is very slow, complex and buggy:

请先登录,再进行评论。

回答(1 个)

KL
KL 2017-10-23
编辑:KL 2017-10-23
I suppose your matrices have (in fact, they should be) consistent dimensions, so you could as well store them in ND array.
dummy = rand(3,3,5);
user_choice = 3; %concatenate first 3 matrices
res = reshape(dummy(:,:,1:user_choice),size(dummy,1),size(dummy,2)*user_choice)
Is this what you want?

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by